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/]
}))
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。