API 參考
最後更新
本頁列出 JWTAuth 每個公開方法的簽章、行為與錯誤。
匯入
import { JWTAuth } from "@pardnchiu/jwt-auth";
// 或預設匯入
import JWTAuth from "@pardnchiu/jwt-auth";
JWTAuth 只有 static 方法,建構子為 private,不可 new。
方法
| 方法 | 簽章 |
|---|---|
init |
init(config: Config): Promise<void> |
close |
close(): Promise<void> |
CreateJWT |
CreateJWT(req: Request, res: Response, user: AuthData): Promise<TokenResult> |
VerifyJWT |
VerifyJWT(req: Request, res: Response): Promise<VerifyResult> |
RevokeJWT |
RevokeJWT(req: Request, res: Response, refresh_id?: string): Promise<void> |
GetAuth |
GetAuth(auth: AuthData | number) |
init
載入金鑰、補上 cookie 名稱預設值並連線 Redis。錯誤見設定。
close
中斷 Redis 連線並清空連線參考。中斷失敗時記錄並拋出。
CreateJWT
| 步驟 | 行為 |
|---|---|
| 1 | 計算指紋,產生 Refresh ID |
| 2 | 以 ES256 簽發 Access Token,payload 為 id、name、email、thumbnail、level、role、scope(預設 [])、fp、refresh_id |
| 3 | 寫入 refresh:<id>(version: 1),TTL 為 refreshTokenExpires |
| 4 | 設定 Access 與 Refresh cookie |
回傳 { token, refresh_id }。未初始化時拋出 JWTAuth not initialized. Call JWTAuth.init() first.。
VerifyJWT
驗證 Access Token,過期時自動續期並寫回 cookie 與 X-New-* header。除未初始化外不拋出,所有失敗以 VerifyResult 表示,對照見驗證結果;續期細節見 Refresh Token 輪替。
RevokeJWT
清除 cookie、縮短 Refresh 資料 TTL、把 Access Token 加入黑名單。refresh_id 參數優先於請求中的值。Redis 錯誤只記錄不拋出。不會撤銷的情況見 Token 撤銷。
GetAuth
把舊版 VerifyJWT() 的回傳值(AuthData 或 400/401)轉成 { ...data, isAuth, isError, isGuest }。
相關:型別