Mientras se utiliza el kit de herramientas web de Gorilla Sessions, las variables de sesión no se conservan en todas las solicitudes. Cuando se inicia el servidor y los usuarios visitan localhost:8100/, se les dirige a login.html porque los valores de la sesión no existen. Al iniciar sesión, las variables de la sesión se almacenan y los usuarios son redirigidos a home.html. Sin embargo, abrir una nueva pestaña e ingresar localhost:8100/ dirige a los usuarios a login.html en lugar de home.html como se esperaba, a pesar de la presencia de variables de sesión.
Surgen varios problemas en el código proporcionado:
Fragmentos de código relevantes (después de abordar los problemas):
// 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)
}
}
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3