Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menetapkan Kuki dengan Betul Menggunakan Pakej Go net/http?

Bagaimanakah Saya Boleh Menetapkan Kuki dengan Betul Menggunakan Pakej Go net/http?

Barbara Streisand
Lepaskan: 2024-12-10 04:43:18
asal
858 orang telah melayarinya

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

Menetapkan Kuki dengan Net/HTTP daripada Pelayan

Artikel ini menangani isu menetapkan kuki dalam Go menggunakan pakej net/http. Apabila menghadapi kesukaran, anda mungkin telah menggunakan carian dalam talian tetapi membuahkan hasil yang tidak memuaskan.

Mari kita teliti kod yang anda berikan:

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)
}
Salin selepas log masuk

Seperti yang diserlahkan dalam respons yang anda terima, anda nampaknya menetapkan kuki pada permintaan dan bukannya respons. Untuk tujuan ini, net/http menyediakan kaedah yang dipanggil SetCookie:

func SetCookie(w ResponseWriter, cookie *Cookie)
Salin selepas log masuk

Untuk menetapkan kuki, anda harus menggunakan fungsi SetCookie seperti berikut:

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!")
}
Salin selepas log masuk

Dengan menetapkan kuki pada balasan, penyemak imbas akan menerima kuki dan menyimpannya dengan sewajarnya. Ini akan membolehkan anda menjejak sesi pengguna dan memberikan pengalaman yang diperibadikan dalam aplikasi web anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Kuki dengan Betul Menggunakan Pakej Go net/http?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan