ゴリラ セッション Web ツールキットの使用中、セッション変数はリクエスト間で保持されません。サーバーが起動し、ユーザーが 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