# 關於 Server Side Render 的 Auth 機制踩坑分享 - 竹子 {%hackmd @JSDC2024/tsbu7yyvRJuYDgOZyikbHQ %} [本次 PPT](https://www.canva.com/design/DAGqTaaP7jU/t29kw2rNLH1hAJwOopR4ew/edit?utm_content=DAGqTaaP7jU&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton) [追蹤 Threads](https://www.threads.com/@f2e_willy) [追蹤 Github](https://github.com/willy874) Slido: https://app.sli.do/event/8Q2BzvKnfpLWsSb9RkTA2V > 開始做筆記 ## ✅ Token 儲存策略 * 建議將 **access token / refresh token 儲存在 Cookie** 中,搭配 `HttpOnly` 與 `Secure` 屬性來增加安全性。 * 這樣可以在 SSR 時讓後端能直接從 Cookie 中讀取驗證資訊,不需仰賴 localStorage。 ## ⚠️ Refresh Token 與 Session 問題 * 使用 Cookie 的同時,也常會搭配 **Session 機制**。 * **但若使用 Serverless 架構(例如 Vercel、Cloudflare Functions)時,不適合使用 session 儲存在記憶體(memory)中**,因為: * Serverless 為無狀態架構(Stateless),無法保證記憶體中的資料能持久存在。 * 一旦 Function 重啟或換機房,記憶體內容就會消失,導致 session 失效。 ## ⚠️ Edge 環境的限制 * 在 Edge Runtime(例如 Cloudflare Workers 或 Vercel Edge Functions)中: * 只支援 HTTP 協議,**無法使用 TCP 連線與資料庫**(例如 Redis、PostgreSQL)直接互動。 * 因此不建議在 Edge 中實作需要持久狀態的驗證流程。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up