一.在egg里面(此時egg已部署完畢)安裝egg-jwt
npm i egg-jwt -S
二.配置 在config.plugin.js文件里

並在config/config.default.js里面

三.使用(一般都是在前端登錄並且用戶存在時,后端會生成一個token返給前端)
在service文件夾里面的home.js

中間件 在middleware/jwt.js里面(egg規定中間件要寫在middleware文件內)
const whiteList=['/reg','/login']//白名單(一般登錄注冊這兩個接口不需要校驗token)此處也可配置在全局 module.exports=(options)=>{ return async function(ctx,next){ if(!whiteList.some(item=>item==ctx.request.url)){//判斷接口路徑是否在白名單 let token = ctx.request.header.authorization//拿到token if(token){//如果token存在 let decoded = ctx.app.jwt.verify(token.slice(7),ctx.app.config.jwt.secret)//解密token if(decoded&&decoded.message){ ctx.body={ code:0, msg:decoded.message } }else{ ctx.username=decoded.username//把接口帶來的用戶名存在ctx上,方便后續做判斷。 await next() } }else{ ctx.body={ code:0, msg:'沒有token' } } }else{ await next() } } }
(egg中間件有3種使用方式,這里是在router中使用的)在router.js中,需要校驗的token的路由,把token寫在路由里:

最后使用postman測試下就知道結果了。
