每日灵魂一问-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/]
}))

每日灵魂一问-JWK是啥?实现原理_第1张图片

你可能感兴趣的:(前端node.js)