أثناء استخدام مجموعة أدوات الويب لجلسات Gorilla، لا يتم الاحتفاظ بمتغيرات الجلسة عبر الطلبات. عند تشغيل الخادم وزيارة المستخدمين localhost:8100/، يتم توجيههم إلى login.html لأن قيم الجلسة غير موجودة. عند تسجيل الدخول، يتم تخزين متغيرات الجلسة، ويتم إعادة توجيه المستخدمين إلى home.html. ومع ذلك، فإن فتح علامة تبويب جديدة وإدخال المضيف المحلي:8100/ يوجه المستخدمين إلى تسجيل الدخول.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