1.0.1 • Published 5 years ago

egg-islogin v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago
$ 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;
    }
}