Maison > développement back-end > Golang > Comment puis-je définir correctement les cookies à l'aide du package net/http de Go ?

Comment puis-je définir correctement les cookies à l'aide du package net/http de Go ?

Barbara Streisand
Libérer: 2024-12-10 04:43:18
original
800 Les gens l'ont consulté

How Can I Correctly Set Cookies Using Go's net/http Package?

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)
}
Copier après la connexion

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)
Copier après la connexion

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!")
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal