关于前端:每日灵魂一问JWK是啥实现原理

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/]
}))

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理