Maison > développement back-end > Golang > Comment gérer les cookies HTTP avec Golang ?

Comment gérer les cookies HTTP avec Golang ?

WBOY
Libérer: 2024-06-01 09:41:56
original
1152 Les gens l'ont consulté

Les méthodes d'utilisation de Golang pour gérer les cookies HTTP sont : Définir le cookie : utilisez http.Cookie pour définir son nom, sa valeur, son heure d'expiration, son domaine, son chemin, son indicateur de sécurité et son indicateur HttpOnly, puis utilisez http.SetCookie() pour l'ajouter à l'en-tête de la réponse. Obtenez un cookie : utilisez r.Cookie() pour obtenir un cookie avec un nom spécifique, dont la valeur est ensuite accessible à l'aide de son champ Valeur. Suppression du cookie : après avoir récupéré le cookie, définir son champ Expire sur une heure passée et l'ajouter à l'en-tête de réponse supprimera le cookie du navigateur client.

如何使用 Golang 管理 HTTP cookie?

Comment utiliser Golang pour gérer les Cookies HTTP ?

Une façon courante de gérer les cookies HTTP dans Golang consiste à utiliser l'API fournie par le package net/http. Voici les étapes à suivre pour définir, obtenir et supprimer les cookies HTTP :

Définir le cookie

package main

import (
    "fmt"
    "net/http"
    "time"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // 设置名为 "session_id" 的 cookie,并将它的值设置为 "some-uuid"
        cookie := &http.Cookie{
            Name: "session_id",
            Value: "some-uuid",
        }
        // 设置 cookie 的过期时间
        cookie.Expires = time.Now().Add(24 * time.Hour)
        // 设置 cookie 的域(默认为当前请求的域)
        cookie.Domain = "example.com"
        // 设置 cookie 的路径(默认为 "/")
        cookie.Path = "/"
        // 设置 cookie 的安全标志(默认为 false)
        cookie.Secure = true
        // 设置 cookie 的 HttpOnly 标志(默认为 false)
        cookie.HttpOnly = true

        // 将 cookie 添加到响应头上
        http.SetCookie(w, cookie)
        fmt.Fprint(w, "Cookie set successfully")
    })

    http.ListenAndServe(":8080", nil)
}
Copier après la connexion

Obtenir le cookie

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // 获取名为 "session_id" 的 cookie
        cookie, err := r.Cookie("session_id")
        if err != nil {
            fmt.Fprint(w, "Cookie not found")
            return
        }

        // 打印 cookie 的值
        fmt.Fprint(w, "Cookie value:", cookie.Value)
    })

    http.ListenAndServe(":8080", nil)
}
Copier après la connexion

Supprimer le cookie

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // 获取名为 "session_id" 的 cookie
        cookie, err := r.Cookie("session_id")
        if err != nil {
            fmt.Fprint(w, "Cookie not found")
            return
        }

        // 设置 cookie 的过期时间为过去,从而删除它
        cookie.Expires = time.Now().Add(-1 * time.Second)

        // 将 cookie 添加到响应头上
        http.SetCookie(w, cookie)
        fmt.Fprint(w, "Cookie deleted successfully")
    })

    http.ListenAndServe(":8080", nil)
}
Copier après la connexion

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal