Lors de l'utilisation de la boîte à outils Web Gorilla Sessions, les variables de session ne sont pas conservées dans les requêtes. Lorsque le serveur démarre et que les utilisateurs visitent localhost:8100/, ils sont dirigés vers login.html car les valeurs de session n'existent pas. Lors de la connexion, les variables de session sont stockées et les utilisateurs sont redirigés vers home.html. Cependant, l'ouverture d'un nouvel onglet et la saisie de localhost:8100/ dirigent les utilisateurs vers login.html au lieu de home.html comme prévu, malgré la présence de variables de session.
Plusieurs problèmes surviennent dans le code fourni :
Extraits de code pertinents (après avoir résolu les problèmes) :
// 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)
}
}
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3