Heim > Backend-Entwicklung > Golang > Wie kann ich Cookies mit dem net/http-Paket von Go richtig setzen?

Wie kann ich Cookies mit dem net/http-Paket von Go richtig setzen?

Barbara Streisand
Freigeben: 2024-12-10 04:43:18
Original
799 Leute haben es durchsucht

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

Cookies mit Net/HTTP vom Server setzen

Dieser Artikel befasst sich mit dem Problem des Setzens von Cookies in Go mithilfe des Net/HTTP-Pakets. Wenn Sie auf Schwierigkeiten stoßen, haben Sie möglicherweise auf Online-Suchen zurückgegriffen, aber unbefriedigende Ergebnisse erhalten.

Sehen wir uns den von Ihnen bereitgestellten Code genauer an:

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)
}
Nach dem Login kopieren

Wie in der Antwort, die Sie erhalten haben, hervorgehoben, scheinen Sie dies zu tun Setzen Sie das Cookie auf die Anfrage und nicht auf die Antwort. Zu diesem Zweck stellt net/http eine Methode namens SetCookie zur Verfügung:

func SetCookie(w ResponseWriter, cookie *Cookie)
Nach dem Login kopieren

Um ein Cookie zu setzen, sollten Sie die SetCookie-Funktion wie folgt verwenden:

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!")
}
Nach dem Login kopieren

Durch Setzen des Cookies auf Nach der Antwort empfängt der Browser das Cookie und speichert es entsprechend. Dadurch können Sie Benutzersitzungen verfolgen und personalisierte Erlebnisse in Ihrer Webanwendung bereitstellen.

Das obige ist der detaillierte Inhalt vonWie kann ich Cookies mit dem net/http-Paket von Go richtig setzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage