Gorilla 세션 웹 도구 키트를 사용하는 동안 요청 전반에 걸쳐 세션 변수가 유지되지 않습니다. 서버가 시작되고 사용자가 localhost:8100/을 방문하면 세션 값이 존재하지 않기 때문에 login.html로 이동됩니다. 로그인하면 세션 변수가 저장되고 사용자는 home.html로 리디렉션됩니다. 그러나 새 탭을 열고 localhost:8100/을 입력하면 세션 변수가 있음에도 불구하고 예상대로 home.html 대신 login.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