每日靈魂一問-JWK是啥?實現原理

JWT (Json web token)

基於token的鑑權機制web

JWT是由三段信息構成的算法

header
聲明算法的字段名爲alg,同時還有一個typ的字段,默認JWT便可json

payload
載荷即消息體,這裏會存放實際的內容,也就是Token的數據聲明,例如用戶的id和nameapi

Signature
簽名是對頭部和載荷內容進行簽名,設置一個secretKey,對前兩個的結果進行HMACSHA25算法app

實現

生成token:登陸成功的時候,頒發token
驗證token:訪問某些資源或者接口時,驗證tokenless

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

image.png

相關文章
相關標籤/搜索