Egg JSON Web Token 是 Egg 框架中的一款JWT插件,旨在為開發者提供簡單易用、高效、安全的身份驗證和授權功能。JWT是一種基于JSON的開放標準(RFC 7519),用于在各方之間安全地傳輸信息。JWT可以使用HS256、HS384、HS512、RS256、RS384、RS512等算法進行簽名,保障數據的安全性。
在Egg中使用Egg JSON Web Token,需要先安裝依賴:
npm install egg-jwt
然后,在Egg的配置文件中進行相關配置,示例如下:
// config/config.default.js exports.jwt = { secret: '123456', // secret為加密密鑰 expiresIn: '1d', // expiresIn為token過期時間 };
在需要驗證登錄的接口中,調用插件提供的jwt.sign()方法,將用戶信息和密鑰傳入,簽發一個token。示例如下:
const { app } = this; const token = app.jwt.sign({ id: 123456 }, app.config.jwt.secret); return { token };
在需要進行身份驗證的接口中,調用插件提供的jwt.verify()方法,將token和密鑰傳入,進行身份驗證。示例如下:
const { app } = this; const token = ctx.header.authorization; try { const decoded = app.jwt.verify(token, app.config.jwt.secret); const userId = decoded.id; // 用戶已登錄 } catch (err) { // 用戶未登錄,或token過期 }
總之,Egg JSON Web Token插件為我們提供了一個簡單、安全、高效的登錄認證和授權方案,大大降低了開發者的開發難度和安全風險。