Définition des cookies avec Net/HTTP à partir du serveur
Cet article aborde la question de la configuration des cookies dans Go à l'aide du package net/http. En rencontrant des difficultés, vous avez peut-être eu recours à des recherches en ligne, mais vous avez obtenu des résultats insatisfaisants.
Examinons le code que vous avez fourni :
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) }
Comme souligné dans la réponse que vous avez reçue, vous semblez définir le cookie sur la demande plutôt que sur la réponse. A cet effet, net/http propose une méthode appelée SetCookie :
func SetCookie(w ResponseWriter, cookie *Cookie)
Pour définir un cookie, vous devez utiliser la fonction SetCookie de la manière suivante :
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!") }
En définissant le cookie sur la réponse, le navigateur recevra le cookie et le stockera en conséquence. Cela vous permettra de suivre les sessions des utilisateurs et de proposer des expériences personnalisées dans votre application Web.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!