
Définir des cookies avec le package net/http de Go à partir du serveur
Définir des cookies avec le package net/http de Go peut être une tâche simple. Cependant, un piège courant consiste à tenter de définir des cookies sur l'objet de requête, plutôt que sur la réponse.
Mise en œuvre
Voici comment définir correctement un cookie à l'aide de net/http :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package main
import (
"fmt"
"net/http"
"time"
)
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,
RawExpires: expire.Format(time.UnixDate),
MaxAge: 86400,
Secure: true,
HttpOnly: true,
SameSite: http.SameSiteStrictMode,
Raw: "test=tcookie" ,
Unparsed: []string{ "test=tcookie" },
}
http.SetCookie(w, cookie)
fmt.Fprint(w, "Hello world!" )
}
func main() {
http.HandleFunc( "/" , indexHandler)
http.ListenAndServe( ":80" , nil)
}
|
Copier après la connexion
Explication
Dans ce exemple :
- http.SetCookie(w, cookie) est utilisé pour ajouter le cookie à la réponse.
- Le cookie est configuré avec divers attributs, tels que le nom, la valeur, le chemin , domaine, expiration et paramètres de sécurité.
- fmt.Fprint(w, "Hello world!") envoie la réponse au client, y compris l'ensemble biscuit.
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!