Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk membuang cookies dalam golang

Bagaimana untuk membuang cookies dalam golang

PHPz
PHPzasal
2023-04-27 09:09:02726semak imbas

Apabila membangunkan aplikasi web menggunakan Golang, anda selalunya perlu memproses data kuki untuk permintaan HTTP. Kadangkala, kita perlu mengalih keluar kuki Contohnya, apabila pengguna log keluar, kita perlu mengosongkan kuki yang dilog masuk. Artikel ini akan memperkenalkan cara menggunakan Golang untuk mengalih keluar kuki.

Pertama, biar kami memahami kuki dalam protokol HTTP. Kuki ialah sekeping kecil data teks yang disimpan pada klien, biasanya ditetapkan oleh pelayan, dan dihantar ke pelayan dengan setiap permintaan. Kuki digunakan untuk merekod sesi pengguna, pilihan, status pengesahan dan maklumat lain. Kuki boleh digunakan untuk melaksanakan log masuk berterusan, troli beli-belah, sejarah penyemakan imbas dan fungsi lain.

Cara mengendalikan Kuki di Golang adalah sangat mudah. ​​Kami boleh menggunakan struktur "Kuki" dan kaedah yang berkaitan dalam pakej "net/http" dalam perpustakaan standard Go untuk mengendalikan Kuki. Dalam permintaan HTTP, Kuki dalam pengepala permintaan disimpan dalam sifat Pengepala objek Permintaan, dan Kuki Set dalam pengepala respons disimpan dalam sifat Pengepala objek Respons.

Mengalih keluar Kuki sebenarnya menetapkan masa Tamat tempoh kepada cap masa lebih awal daripada masa semasa. Berikut ialah contoh mudah yang menunjukkan cara untuk mengalih keluar kuki bernama "session":

func removeCookie(w http.ResponseWriter, r *http.Request) {
    c, err := r.Cookie("session")
    if err != nil {
        // Cookie 不存在,直接返回
        return
    }

    // 将 Cookie 的过期时间设置为过去的时间
    c = &http.Cookie{
        Name:    "session",
        Value:   "",
        Expires: time.Unix(0, 0),
        Path:    "/",
    }
    http.SetCookie(w, c)
}

Dalam kod di atas, kami mula-mula mendapat kuki bernama "session". Jika kuki tidak wujud, kembalikan terus. Jika ia wujud, kami mencipta objek Cookie baharu dan menetapkan masa tamat tempohnya kepada masa apabila cap waktu Unix ialah 0, iaitu pada masa lalu. Kemudian, kami menggunakan kaedah "SetCookie" untuk menetapkan objek Kuki baharu ke dalam pengepala respons dan penyemak imbas akan mengalih keluar Kuki secara automatik.

Dalam pembangunan sebenar, kita boleh merangkumkan kod di atas ke dalam fungsi untuk digunakan semula dalam kod:

func removeCookie(w http.ResponseWriter, name string) {
    c, err := r.Cookie(name)
    if err != nil {
        // Cookie 不存在,直接返回
        return
    }

    // 将 Cookie 的过期时间设置为过去的时间
    c = &http.Cookie{
        Name:    name,
        Value:   "",
        Expires: time.Unix(0, 0),
        Path:    "/",
    }
    http.SetCookie(w, c)
}

Dalam kod di atas, nama kuki yang akan kami alih keluar Lulus sebagai parameter kepada fungsi. Menggunakan fungsi biasa ini, kami boleh mengalih keluar sebarang kuki dengan mudah.

Untuk meringkaskan, mengalih keluar kuki hanya memerlukan menetapkan masa tamat tempohnya kepada masa lalu. Di Golang, kami boleh menggunakan struktur "Kuki" dan kaedah yang berkaitan dalam pustaka standard untuk mengendalikan Kuki. Kita boleh merangkum kod di atas ke dalam fungsi umum untuk digunakan semula dalam kod. Semoga artikel ini bermanfaat kepada anda.

Atas ialah kandungan terperinci Bagaimana untuk membuang cookies dalam golang. 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