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/]
}))
发表回复