一、安装jsonwebtoken、koa-jwt
yarn add jsonwebtoken koa-jwt
或
npm install jsonwebtoken koa-jwt
先安装 jsonwebtoken 和 koa-jwt 后面需要导入使用
二、使用步骤
1.登录接口:生成token
上图表示在登录接口请求成功后,使用jwt.sign生成token并一起返回给前端
const token = jwt.sign({
data //用户数据
},'vueManager',{expiresIn:10})
//expiresIn表示token失效时间,为数字时秒做单位,也可用字符串'1h''1d'表示一小时 一天
2.验证token
在app.js文件进行拦截:
const koaJwt = require('koa-jwt')
// logger
app.use(async (ctx, next) => {
await next().catch((err)=>{
if(err.status == '401'){
ctx.status = 200;
ctx.body = util.fail('Token认证失败',util.CODE.AUTO_ERROR)
}
})
})
//在next() 前过滤接口 验证token是否过期-如果过期抛出异常401 unless跳过检测登录接口
app.use(koaJwt({secret:'vueManager'}).unless({
path:[/^\/api\/users\/login/]
}))
上图表示在中间件next()前先验证token是否过期,如果异常的话会抛出401状态,然后再next中处理401,即将状态码改为200,然后返回前端报错信息为Token认证失败