cshenfu
2025-04-10 231ff2d244352a236d3da55c23e972a6adab2049
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
const router = require('koa-router')()
const jwt = require('jsonwebtoken')
const util = require('util')
const verify = util.promisify(jwt.verify) // 解密
 
router.get('/:checkToken', async function (ctx, next) {
  if (ctx.request.header['authorization']) {
    let token = ctx.request.header['authorization'].split(' ')[1]
    //解码token
    let payload = await verify(token, 'dljc')
    if (payload) {
      return next()
    } else {
      ctx.body = {
        message: 'token过期'
      }
      //如果权限没问题,那么交个下一个控制器处理
    }
  } else {
    ctx.body = {
      message: '没有token'
    }
  }
})
const tokenCheck = function () {
  return async function (ctx, next) {
    if (ctx.query.JWT) {
      let token = ctx.query.JWT.split('.')
      //解码token
      // let payload1 = await verify(token[0], 'sxyd')
      // let payload3 = await verify(token[2], 'sxyd')
      
      let str1 = new Buffer(token[0].toString('base64') , 'base64').toString();
      let str2 = new Buffer(token[1].toString('base64') , 'base64').toString();
 
      let payload = await verify(token[2], 'sxyd')
 
      if (payload) {
        return next()
      } else {
        ctx.body = {
          message: 'token过期'
        }
        //如果权限没问题,那么交个下一个控制器处理
      }
    } else {
      ctx.body = {
        message: '没有token'
      }
    }
    // if (ctx.state.user) {
    //   // 如果携带有效 Token 就对 Token 进行检查(由 kow-jwt 检查 Token 有效性)
    //   let result = true
    //   // check here
    //   if (result) {
    //     await next()
    //   } else {
    //     ctx.body = {
    //       msg: "Token 检查未通过"
    //     }
    //   }
    // } else {
    //   // 如果没有携带 Token 就跳过检查
    //   await next()
    // }
  }
}
 
module.exports = tokenCheck
//module.exports = router
 
// module.exports = async (ctx, next) => {
//   if (ctx.request.header['authorization']) {
//     let token = ctx.request.header['authorization'].split(' ')[1]
//     //解码token
//     let payload = await verify(token, 'FM_Monitor')
//     if (payload) {
//       return next()
//     } else {
//       ctx.body = {
//         message: 'token过期'
//       }
//       //如果权限没问题,那么交个下一个控制器处理
//     }
//   } else {
//     ctx.body = {
//       message: '没有token'
//     }
//   }
// }