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
Barbara Streisandasal
2024-12-10 04:43:18765semak imbas

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)
}

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)

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!")
}

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:
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