Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menetapkan Kuki dengan Betul Menggunakan Pakej Go net/http?
Menetapkan Kuki dengan Net/HTTP daripada Pelayan
Artikel ini menangani isu menetapkan kuki dalam Go menggunakan pakej net/http. Apabila menghadapi kesukaran, anda mungkin telah menggunakan carian dalam talian tetapi membuahkan hasil yang tidak memuaskan.
Mari kita teliti kod yang anda berikan:
package main import ( "io" "net/http" "time" ) func indexHandler(w http.ResponseWriter, req *http.Request) { expire := time.Now().AddDate(0, 0, 1) cookie := http.Cookie{"test", "tcookie", "/", "www.domain.com", expire, expire.Format(time.UnixDate), 86400, true, true, "test=tcookie", []string{"test=tcookie"}} req.AddCookie(&cookie) io.WriteString(w, "Hello world!") } func main() { http.HandleFunc("/", indexHandler) http.ListenAndServe(":80", nil) }
Seperti yang diserlahkan dalam respons yang anda terima, anda nampaknya menetapkan kuki pada permintaan dan bukannya respons. Untuk tujuan ini, net/http menyediakan kaedah yang dipanggil SetCookie:
func SetCookie(w ResponseWriter, cookie *Cookie)
Untuk menetapkan kuki, anda harus menggunakan fungsi SetCookie seperti berikut:
func indexHandler(w http.ResponseWriter, req *http.Request) { expire := time.Now().AddDate(0, 0, 1) cookie := http.Cookie{ Name: "test", Value: "tcookie", Path: "/", Domain: "www.domain.com", Expires: expire, MaxAge: 86400, // duration in seconds. Secure: true, HttpOnly: true, } http.SetCookie(w, &cookie) io.WriteString(w, "Hello world!") }
Dengan menetapkan kuki pada balasan, penyemak imbas akan menerima kuki dan menyimpannya dengan sewajarnya. Ini akan membolehkan anda menjejak sesi pengguna dan memberikan pengalaman yang diperibadikan dalam aplikasi web anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Kuki dengan Betul Menggunakan Pakej Go net/http?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!