Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.8K
Views
Cors: este atributo de dominio de cookies establecido no era válido con respecto a la URL del host actual

Tengo un backend de nodo, que debería permitir la solicitud de origen cruzado desde mi aplicación frontend que se ejecuta en localhost:3000. Por lo tanto, he restringido la política cors a mi dominio.

 import csrf from 'csurf'; app.use( cors({ origin: 'http://localhost:3000', credentials: true }) ); const csrfProtection = csrf({ cookie: { maxAge: 900, domain: 'http://localhost:3000' } }) router.get('/csrfToken', csrfProtection, async (req, res, next) => { res.json({ token: req.csrfToken() }); });

Cuando realizo ahora una solicitud al punto final de mi servidor (que se ejecuta en localhost: 5000), me devuelve el siguiente error de que no se puede configurar la cookie.

 fetch('http://localhost:5000/csrfToken', { method: 'GET', credentials: 'include' })

ingrese la descripción de la imagen aquíingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Esto no tiene nada que ver con CORS. Así es como funcionan las cookies.


El dominio en el encabezado set-cookie dice http://localhost:3000 pero la solicitud es para http://localhost:5000 .

Ese es un origen diferente y también lo es una cookie no válida.


Es imposible que un encabezado set-cookie de un origen establezca una cookie para un origen diferente. http://localhost:5000 solo puede establecer cookies para http://localhost:5000 .


Si realmente desea configurar una cookie para :3000 , una solución alternativa sería proporcionar los datos a través de algún otro formato que no sea una cookie (por ejemplo, en el cuerpo de la solicitud) y luego tener el JS del lado del cliente en http://localhost:3000 configura la cookie usando la API document.cookie .

Si desea configurar la cookie para :5000 (lo que parece más probable), obtenga el número de puerto en el encabezado set-cookie .

 const csrfProtection = csrf({ cookie: { maxAge: 900, domain: 'http://localhost:5000' } })
over 4 years ago · Santiago Trujillo Report

0

Me encontré con este problema hoy también. Utilicé el navegador Chrome con una versión superior a 80. Chrome agregó un nuevo atributo "mismo sitio" para defender csrf que de v51. chrome v80+ límite predeterminado entre sitios establece cookies, hace que la cookie no sea válida. advertencia de la consola : se configuró una cookie asociada con un recurso entre sitios en http://XXX.XXX.XXX.XXXX/ sin el atributo SameSite . Se ha bloqueado, ya que Chrome ahora solo entrega cookies con solicitudes entre sitios si están configuradas con SameSite=None y Secure .

chrome://flags/ ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Report

0

Si alguien aterriza aquí desde Laravel (sanctum), puede probar esto para sus servidores locales:

 //.env file. Try removing :port from SESSION_DOMAIN SANCTUM_STATEFUL_DOMAINS="127.0.0.1:8000" SESSION_DOMAIN="127.0.0.1"
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!