Bei der Verwendung des Gorilla Sessions-Web-Toolkits werden Sitzungsvariablen nicht über Anfragen hinweg beibehalten. Wenn der Server startet und Benutzer localhost:8100/ besuchen, werden sie zu login.html weitergeleitet, da keine Sitzungswerte vorhanden sind. Beim Anmelden werden Sitzungsvariablen gespeichert und Benutzer werden zu home.html weitergeleitet. Wenn jedoch ein neuer Tab geöffnet und „localhost:8100/“ eingegeben wird, werden Benutzer wie erwartet zu login.html und nicht zu home.html weitergeleitet, obwohl Sitzungsvariablen vorhanden sind.
Es treten mehrere Probleme auf der bereitgestellte Code:
Relevante Codeausschnitte (nach Behebung der Probleme):
<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>
Das obige ist der detaillierte Inhalt vonWarum werden Gorilla Sessions-Variablen in meiner Webanwendung nicht über alle Anforderungen hinweg beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!