Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.8K
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda