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
419

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.

Berikut ialah ringkasan langkah yang saya ambil dan isu yang saya hadapi:

Tetapkan kuki apabila log masuk:

res.cookie("token", token, { httpSahaja: benar, sameSite: "tiada", laluan: "/", selamat: benar, });

Apabila saya cuba mendapatkan kuki ini menggunakan tetapan cors, di mana asalnya:

app.use( kor({ asal: "http://localhost:3000", kelayakan: benar, }) ); 

Tetapi apabila menguji, apabila saya menggunakan asal subdomain, seperti ini:

app.use( kor({ asal: "http://binbros.localhost:3000", kelayakan: benar, }) ); 

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.

console.log(req.cookies);

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粉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, atributsecurepaling sesuai ditetapkan kepadafalse.

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 domainbinbros.localhostdan semakAccess-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
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!