使用 Gorilla Sessions Web 工具包時,會話變數不會跨請求保留。當伺服器啟動並且使用者存取 localhost:8100/ 時,他們將被導向到 login.html,因為會話值不存在。登入後,會話變數將被存儲,並且使用者將被重定向到 home.html。然而,儘管存在會話變量,打開一個新選項卡並輸入 localhost:8100/ 仍會按預期將使用者引導至 login.html 而不是 home.html。
中出現了幾個問題提供的代碼:
相關程式碼片段(解決問題後):
<code class="go">// Set session options store.Options = &sessions.Options{ Domain: "localhost", Path: "/", MaxAge: 3600 * 8, // 8 hours HttpOnly: true, } // Session handling in `SessionHandler` func SessionHandler(res http.ResponseWriter, req *http.Request) { session, err := store.Get(req, "loginSession") if err != nil { // Handle the error } // Check for a valid session if session.Values["email"] == nil { http.Redirect(res, req, "html/login.html", http.StatusFound) } else { http.Redirect(res, req, "html/home.html", http.StatusFound) } }</code>
以上是為什麼我的 Web 應用程式中的請求之間沒有維護 Gorilla 會話變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!