JWT (Json web token)
基于token的鉴权机制
JWT是由三段信息形成的
header
申明算法的字段名为alg,同时还有一个typ的字段,默认JWT即可
payload
载荷即音讯体,这里会寄存理论的内容,也就是Token的数据申明,例如用户的id和name
Signature
签名是对头部和载荷内容进行签名,设置一个secretKey,对前两个的后果进行HMACSHA25算法
实现
生成token:登录胜利的时候,颁发token
验证token:拜访某些资源或者接口时,验证token
// 生成token// 借助第三方库jsonwebtoken,通过jsonwebtoken 的 sign 办法生成一个 token: const token = jwt.sign( { name: result.name }, "test_token", // secret { expiresIn: 60 * 60 } // 过期工夫:60 * 60 s );
// 校验token// 应用 koa-jwt 中间件进行验证/ 留神:放在路由后面app.use(koajwt({ secret: 'token'}).unless({ // 配置白名单 path: [/\/api\/login/]}))