koa中生成jwk令牌

  1. 执行npm i jsonwebtoken --save 安装第三方库
  2. 在util.js中引用,并添加token生成函数
    在config.js中添加全局变量
security:{
    secretKey: 'pdooawjjypomqynn',
    expiresIn: 60*60 // 令牌的过期时间
  }

util.js

const jwt = require('jsonwebtoken')
// 生成token
const generateToken = function(uid, scope){
    const secretKey = global.config.security.secretKey
    const expiresIn = global.config.security.expiresIn
    const token = jwt.sign({
        uid,
        scope
    },secretKey,{
        expiresIn
    })
    return token
}



module.exports = {
    findMembers,
    generateToken,
}
  1. 在token.js api文件中使用token生成函数
const {generateToken} = require('../../../core/util')
router.post('/', async (ctx)=>{
  const v = await new ValidationToken().validate(ctx)

  let token;
  // 根据不同的登录方式,返回客户端不同的信息
  switch (v.get('body.type')) {
    case LoginType.USER_EMAIL:
      token = await emailLogin(v.get('body.account'), v.get('body.secret'))
      break;
    case LoginType.USER_MINI_PROGRAM:

      break;
    default:
      throw new ParameterException('没有相关处理函数')
      break;
  }
  ctx.body = {
    token
  }
})
// 比对客户端传递的用户名和密码是否与数据库中的一致,如果一致就颁布令牌
async function emailLogin(account, secret){
  const user = await User.verifyEmailPassword(account, secret)
  return generateToken(user.id, 2)
}

module.exports = router
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值