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