koa中生成jwk令牌
执行npm i jsonwebtoken --save 安装第三方库在util.js中引用,并添加token生成函数在config.js中添加全局变量security:{secretKey: 'pdooawjjypomqynn',expiresIn: 60*60 // 令牌的过期时间}util.jsconst jwt = require('jsonwebt...
·
- 执行npm i jsonwebtoken --save 安装第三方库
- 在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,
}
- 在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
更多推荐
已为社区贡献1条内容
所有评论(0)