1.0.0 • Published 2 years ago

dxr v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

token

  • need require

    const url = require('url');
    const {verify} = require('jsonwebtoken');
  • module

    module.exports = () => {
       return async (ctx,next) => {
            
           let whiteList = ['/login','/registry'];
    
           let pathname = url.parse(ctx.request.url).pathname ;
    
           if(whiteList.includes(pathname)){  //是否在白名单
               return await next()
           }
    
           if(!ctx.request.header.authorization){  //没传token
               return (ctx.body={
                   code:0,
                   msg:'去登录'
               })
           }
    
           let nothing = '' ;   //错的token
           try {
               nothing = verify(ctx.request.header.authorization,'token')
           } catch (error) {
               nothing = false ;
           }
           if(!nothing){
               return (ctx.body={
                   code:0,
                   msg:'token被篡改了'
               })
           }
    
           let time = (new Date().getTime() - nothing) /1000/60/60  //超时token过期
           if(time>2){
               return (ctx.body={
                   code:0,
                   msg:'token过期,请重新登录'
               })
           }
    
           return await next();
    
       }
    }
1.0.0

2 years ago