Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penyemak imbas tidak menyimpan kuki

Penyemak imbas tidak menyimpan kuki

王林
王林ke hadapan
2024-02-09 10:30:09525semak imbas

Penyemak imbas tidak menyimpan kuki

editor php Youzi di sini untuk memperkenalkan masalah biasa kepada anda - penyemak imbas tidak menyimpan kuki. Apabila kami menggunakan penyemak imbas untuk mengakses halaman web setiap hari, kuki ialah mekanisme biasa yang boleh membantu tapak web mengingat status log masuk pengguna, tetapan diperibadikan dan maklumat lain. Walau bagaimanapun, kadangkala kami menghadapi masalah seperti penyemak imbas tidak menyimpan kuki, mengakibatkan kehilangan status log masuk dan ketidakupayaan untuk menyemak imbas web seperti biasa. Jadi mengapa ini berlaku? Mari kita terokai bersama-sama!

Kandungan soalan

Cuba 15648070,15648070 malangnya tak berjaya:)

Helo, ini kali pertama saya menggunakan gin untuk membina api, dan saya menghadapi beberapa masalah untuk menetapkan kuki pada penyemak imbas saya

Maksud saya, semasa di bawah tab dev 工具 上查看请求时,我看到了 set-cookie 标头和正确的值,也在该请求中的 cookie saya juga melihat cookies

Masalah utama ialah ia tidak disimpan pada penyemak imbas saya (dev工具 -> application -> storage -> cookiesdan kuki saya tidak wujud)

Belakang:

router.use(cors.new(cors.config{
        allowmethods:     []string{"get", "post", "put", "patch", "delete", "head", "options"},
        allowheaders:     []string{"origin", "content-length", "content-type"},
        maxage:           12 * time.hour,
        allowallorigins:  true,
        allowcredentials: true,
    }))

    router.post("/users/login", server.loginuser)
func (server *server) loginuser(ctx *gin.context) {
        ...
    ctx.setcookie("access_token", accesstoken, 3600, "/", "localhost", false, true)
    ctx.setcookie("refresh_token", refreshtoken, 3600, "/", "localhost", false, true)

    ctx.json(http.statusok, gin.h{"ok": true, "payload": rsps})

}

Halaman hadapan:

const login = async () => {
    const res = await fetch("http://localhost:3000/users/login", {
      method: "POST",
      body: JSON.stringify({ username, password }),
    });
    const data = await res.json();
    console.log(data);
  };
  const handleFormSubmit = (e) => {
    e.preventDefault();
    login();
  };

  return (
    <div>
      <h1>Login Page</h1>
      <form onSubmit={handleFormSubmit}>
         ...
        <button type="submit">Login</button>
      </form>
    </div>
  );

Ada sebarang petunjuk..?

Penyelesaian

(Terima kasih Discord 上的 #Reactiflux saluran)

Saya terlepas dua perkara..

Sebelah pelayan:

  • AllowHeaders headers -> 添加 "Access-Control-Allow-Headers", "Authorization"

  • Tambah AllowOriginFunc -> 意味着不允许 * dan bukannya domain tertentu

Halaman hadapan:

  • Konfigurasikan withCredentials: true 添加到我的 axios

Atas ialah kandungan terperinci Penyemak imbas tidak menyimpan kuki. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam