天天看点

jwt对用户登陆权限加解密

通过登陆

// 通过token获取用户信息
router.get('/info', async (ctx) => {
  ctx.body = {
    res: verify(getToken(ctx)),
    code: 1,
    data: '获取成功',
  }
})
           
加密
请求时候 data: { user, token: jwt.sign(user, 密钥) },






var jwt = require('jsonwebtoken')

// 引入密钥
const config = require('../../project.config.js')

// 文件中内容
// module.exports = {
//   DEFAULT_PASSWORD: '123456',
//   JWT_SECRET: 'booklogin',
// }

// 获取token
const getToken = (ctx) => {
  let { authorization } = ctx.header
  return authorization.replace('Bearer ', '').replace('bearer ', '')
}




// 解密
const verify = (token) => {
  return new Promise((resolve, reject) => {
    jwt.verify(token, config.JWT_SECRET, (err, playload) => {
      if (err) {
        reject(err)
        return
      }
      resolve(playload)
    })
  })
}

module.exports = {
  verify,
  getToken,
}