При использовании веб-инструментария Gorilla Sessions переменные сеанса не сохраняются во всех запросах. Когда сервер запускается и пользователи посещают localhost:8100/, они перенаправляются на login.html, поскольку значения сеанса не существуют. При входе в систему переменные сеанса сохраняются, и пользователи перенаправляются на home.html. Однако при открытии новой вкладки и вводе localhost:8100/ пользователи направляются на Login.html вместо home.html, как ожидалось, несмотря на наличие переменных сеанса.
В этом случае возникает несколько проблем. предоставленный код:
Соответствующие фрагменты кода (после устранения проблем):
// 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)
}
}
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3