Das setzen von cookies mit net/http
Ich versuche mit cookies Gehen die net/http-Paket. Ich habe:
package main
import "io"
import "net/http"
import "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)
}
Ich habe versucht, googeln 'Golang' mit 'cookies', aber nicht bekommen, eine gute Ergebnisse. Ob jemand kann mich in die richtige Richtung, es würde sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin nicht ein Go-Experte, aber ich denke, Sie werden, der das cookie setzt auf die Anfrage, sind Sie nicht? Möchten Sie vielleicht, um es auf die Antwort. Es ist ein
setCookie
- Funktion in net/http. Dies könnte helfen:http://golang.org/pkg/net/http/#SetCookie
Gibt es einen grundlegenden Unterschied zwischen
Requests
undResponseWriter
eine Anforderung ist es, was ein browser sendet, wieund eine Antwort ist das, was der handler senden, so etwas wie :
Wenn der browser eine Anfrage, es wird das cookie für diese Domäne, da cookies gespeichert domain-weisen und können nicht aufgerufen werden, die von cross-domains, wenn Sie ein cookie als HTTP-erst dann kann der Zugriff nur von der website, die Einstellung über HTTP und nicht über JS.
Also beim abrufen von Informationen aus cookies, die Sie tun können, dass aus dem r.Cookie-Methode, wie diese
https://github.com/thewhitetulip/Tasks/blob/master/views/addViews.go#L72-L75
Aber wenn Sie gehen, um ein cookie zu setzen, Sie tun es in der Antwort Schriftsteller-Methode, der Anfrage ist eine nur-lese-Objekt, das wir reagieren, denken, es als eine SMS-Nachricht, die Sie von jemand, das ist eine Anfrage, können Sie nur bekommen, was Sie geben eine Antwort, so können Sie Tippen Sie in einem cookie auf
weitere details: https://thewhitetulip.gitbooks.io/webapp-with-golang-anti-textbook/content/content/2.4workingwithform.html
http.Cookie{Name: "csrftoken",Value:"abcd",Expires:expiration, Path: "/"}
Unter diesem code hilft u
Unten zeigt, wie wir verwenden Cookies in unserem Artikel:
War es nicht für mich funktioniert in Safari, bis ich Hinzugefügt, den Pfad und MaxAge. Sowohl die sichere und regelmäßige cookies, die für mich gearbeitet
Sharing, so dass es hilft jemand, der verklemmt ist wie ich für mehr als 2 Tage 🙂
Zunächst müssen Sie die Cookie erstellen und dann mithilfe von http-Paket das SetCookie () - Funktion können Sie das cookie.
Können Sie gorilla-Paket für die Handhabung von cookies oder ich würde sagen, sichere cookies: http://www.gorillatoolkit.org/pkg/securecookie