Semasa menggunakan kit web Sesi Gorilla, pembolehubah sesi tidak dikekalkan merentas permintaan. Apabila pelayan dilancarkan dan pengguna melawat localhost:8100/, mereka diarahkan ke login.html kerana nilai sesi tidak wujud. Selepas log masuk, pembolehubah sesi disimpan dan pengguna dialihkan ke home.html. Walau bagaimanapun, membuka tab baharu dan memasukkan localhost:8100/ mengarahkan pengguna untuk log masuk.html dan bukannya home.html seperti yang dijangkakan, walaupun terdapat pembolehubah sesi.
Beberapa isu timbul dalam kod yang disediakan:
Snippet Kod Berkaitan (selepas menangani isu):
<code class="go">// 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) } }</code>
Atas ialah kandungan terperinci Mengapa Pembolehubah Sesi Gorilla Tidak Dikekalkan Merentas Permintaan dalam Aplikasi Web Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!