Fastify 實戰:三 Token JWT + RBAC 權限樹
· 8 分鐘閱讀
多數 JWT 教學都只示範一個 token、一條 login route,然後就結束了。但實際專案需要的遠不止這些:token 過期後不能叫使用者重新登入、新帳號首次登入要強制改密碼、角色權限在需求變動時不能每次都改 code。
最近在做一個社群 RPG 的後台,有三種管理角色(Admin / GM / Moderator)、一棵巢狀的權限樹(涵蓋玩家管理和遊戲內容)、以及新 GM 帳號強制改密碼的流程。這篇記錄我實際 ship 出去的 auth 架構,技術棧是 Fastify + Drizzle ORM + PostgreSQL。
三種 Token,三種用途
不是一支 JWT 打天下,而是依用途分成三支:
| Token | 有效期 | 用途 |
|---|---|---|
| Access Token | 8 小時 | API 認證——payload 帶使用者身份和角色(權限在 runtime 查 DB) |
| Refresh Token | 7 天 |
