1.0.1 • Published 5 years ago
egg-islogin v1.0.1
$ npm install egg-islogin
use
const isLogin = require('egg-islogin');
module.exports.decode = (token, keys) => new Promise((resolve, reject) => {
jwt.verify(token, keys, (err, data) => {
if (err) {
reject(err)
} else {
resolve(data)
}
})
})
jwt.sign({
data: data,
iat: Date.now()
}, this.app.config.keys)
Middleware
module.exports = (keys) => async (ctx, next) => {
let { white } = ctx.app.config;
let flag = white.map(item => ctx.method == item.method && ctx.path == item.path);
if (flag) {
await next()
return
}
//获取请求头中的token
let token = ctx.get('token');
try {
let data = await decode(token, ctx.app.config.keys);
let { iat } = data;
let curerntTime = Date.now() - iat;
let times = 648000000;//7天
// 1.curerntTime > times
if(curerntTime>time){
ctx.status=200;
return
}
//2.await next()
} catch (error) {
ctx.status = 401;
}
}