我們在專案中已經導入 Firebase Auth,但很多人做到一半會突然冒出幾個問號:
這篇會把 Firebase 的 Token 流程一次講清楚,不寫程式也能懂,為接下來登入態管理、權限驗證、Session 機制打個穩固地基。
就算你沒感覺,Firebase Auth 背後就是在幫你發 JWT(JSON Web Token)。
只不過它不像傳統後端要你自己簽發,而是:
✔ Google 幫你簽
✔ SDK 幫你拿
✔ Token 自動儲存
✔ 過期自動刷新(Refresh Token)
✔ 你只需要 .getIdToken() 就能取用
也因為這樣,很多人用得很習慣,卻根本不知道 Token 在哪、怎麼生、何時過期。
範例(解碼後):
{
"user_id": "abc123",
"email": "test@gmail.com",
"exp": 1737620100,
"auth_time": 1737616500
}
📌 放在哪?
在 Web 專案中,Refresh Token 會被 Firebase 存在 IndexedDB 或 localStorage 裡,你平常根本不會操作到。
當 ID Token 過期,Firebase 會這樣處理:
.getIdToken()
項目 | 傳統後端實作(Node/Express) | Firebase Auth |
---|---|---|
Token 誰簽 | 你自己(jsonwebtoken/jose) | |
Access Token 有效時間 | 15~60 分鐘不等 | 約 1 小時 |
Refresh Token 儲存 | Cookie / DB / Redis | SDK 自動管理 |
登入流程 | 自己寫 Controller | Firebase 提供 API |
驗證 | 手動 Middleware | Firebase SDK / Admin SDK |
換 Token | 自己寫 refresh route | 自動 refresh |
Firebase 幫你省下 50% 後端開發時間,也避免不少安全誤踩雷區。