Bahagian belakang ekspres menghadapi masalah menerima kuki subdomain menggunakan CORS dan Penghurai Kuki
P粉665427988
P粉665427988 2023-08-14 21:31:57
0
1
514
<p>Saya sedang membangunkan aplikasi MERN (MongoDB, Express, React, Node.js) dan saya menghadapi masalah dengan menerima kuki daripada subdomain dalam bahagian belakang Express. Saya telah menyediakan pengendalian CORS dan kuki dan semuanya berfungsi dengan baik apabila menggunakan asal localhost yang mudah, tetapi saya menghadapi masalah mengendalikan subdomain. </p> <p>Berikut ialah ringkasan langkah yang saya ambil dan isu yang saya hadapi: </p> <p><strong>Tetapkan kuki apabila log masuk: </strong></p> <pre class="brush:php;toolbar:false;">res.cookie("token", token, { httpSahaja: benar, sameSite: "tiada", laluan: "/", selamat: benar, });</pre> <p>Apabila saya cuba mendapatkan kuki ini menggunakan tetapan cors, di mana asalnya: </p> <pre class="brush:php;toolbar:false;">app.use( kor({ asal: "http://localhost:3000", kelayakan: benar, }) );</pra> <p>Tetapi apabila menguji, apabila saya menggunakan asal subdomain, seperti ini: </p> <pre class="brush:php;toolbar:false;">app.use( kor({ asal: "http://binbros.localhost:3000", kelayakan: benar, }) );</pra> <p>Tiada ralat dengan CORS pada bahagian hadapan dan kuki berjaya dibuat pada bahagian hadapan. Tetapi apabila saya cuba mengakses kuki menggunakan tetapan CORS ini, saya tidak menerima sebarang kuki. Tetapi menggunakan kaedah yang sama dan persediaan CORS kepada localhost mudah, saya boleh mendapatkan semua kuki secara normal tanpa sebarang masalah. </p> <p><kod>console.log(req.cookies);</code></p> <p>P.S: Apabila saya menggunakan localhost dan asal ialah localhost, dan saya log kuki itu, Saya boleh mendapatkan semua kuki bahagian hadapan, bukan hanya kuki yang saya buat di bahagian belakang tetapi Apabila saya menggunakan asal subdomain, saya tidak menerima pun kuki di bahagian belakang, Tiada yang dibuat oleh saya, mahupun daripada bahagian hadapan</p>
P粉665427988
P粉665427988

membalas semua(1)
P粉244730625

Apabila menggunakan subdomain dalam persekitaran pembangunan seperti subdomain.localhost, anda mungkin menghadapi cabaran tambahan disebabkan oleh sekatan dasar keselamatan penyemak imbas. Penyemak imbas selalunya menganggap subdomain berbeza sebagai asal usul bebas, yang mungkin menjejaskan kuki dan gelagat CORS.

Dalam persekitaran pembangunan, atribut secure paling sesuai ditetapkan kepada false.

res.cookie("token", token, {
    httpOnly: true,
    sameSite: "none",
    path: "/",
    secure: false,
  });

Semak sistem andahosfail:

127.0.0.1 binbros.localhost

Semak pada bahagian hadapan sama ada API dipanggil daripada nama domain binbros.localhost dan semak Access-Control-Allow-Credentials

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan