koa框架下Token的生成和验证机制
本文采用了中间件的方式,简单方便
1、首先安装jsonwebtoken第三方模块 npm i jsonwebtoken
2、使用koa-jwt 安装npm i koa-jwt
3、token的生成
/* 获取一个期限为1小时的token */
function getToken(userInfo) {
let payload = {username: userInfo.username, id: userInfo._id, time: new Date().getTime(), timeout: 3600*1000}
const secret = "token_tenantManage"
const accessToken = jwt.sign(payload, secret, {expiresIn: "1h"})
// return jwt.sign(payload, secret, { expiresIn: '4h' });
return accessToken
}
4、判断token是否合法
function isTokenValid(token) {
// 验证并解析JWT
const secret = "token_tenantManage"
var payload
try {
payload = jwt.verify(token, secret);
console.log('payload:',payload)
} catch (error) {
payload = ''
return false
}
let {username, id, time, timeout } = payload;
let data = new Date().getTime();
if (data - time <= timeout) {
return true
} else {
return false
}
}
5、采用中间件的方式
在app.js中添加
const check = require('./middleware/tokenCheck')
app.use(check)
新建tokenCheck.js文件