使用 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中文网其他相关文章!