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

280
Visualizações
El navegador no envía la cookie del dominio con www después de la redirección

Tengo una versión provisional para mi sitio web que es beta.example.com . Recientemente agregué la autenticación de cookies con la siguiente configuración:

 response.cookie(tokenName, token, { httpOnly: true, expires: new Date(Date.now() + (tokenExpirationSec * 1000)) })

En la puesta en escena funciona la autenticación.

Cuando implementé el código en producción, la cookie se configuró correctamente (a través del encabezado Set-Cookie ) pero no se envió al servidor en las solicitudes del lado del servidor. Entonces, cuando actualice, el estado de inicio de sesión desaparecerá pero se conservará en las solicitudes del lado del cliente.

Vale la pena señalar que hay una redirección 301 de example.com a www.example.com . Además, el encabezado del host era www.example.com en producción.

Eventualmente resolví el problema agregando un parámetro de domain al configurar la cookie de la siguiente manera:

 response.cookie(tokenName, token, { httpOnly: true, expires: new Date(Date.now() + (tokenExpirationSec * 1000)), domain: '.example.com' })

Sin embargo, no entiendo completamente la fuente del problema. Según MDN

El dominio especifica los hosts permitidos para recibir la cookie. Si no se especifica, el valor predeterminado es el host de la ubicación actual del documento, sin incluir los subdominios. Si se especifica Dominio, los subdominios siempre se incluyen.

Entonces, cuando estaba en preparación con beta.example.com sin establecer explícitamente el domain , el domain implícito sería example.com de acuerdo con MDN y beta.example.com estaría excluido. ¡Pero la autenticación funcionó en la puesta en escena!

Pero tengo la misma situación en producción con www.example.com , ¿por qué no funciona en producción?

Esta es la configuración de nginx que hace la redirección:

 server { listen 80 default_server; server_name beta.example.com; location / { include proxy_pass.inc; } } server { listen 80 default_server; server_name www.example.com; location / { include proxy_pass.inc; } } server { listen 80; server_name example.com; return 301 https://www.example.com$request_uri; }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Creo que está malinterpretando la documentación de MDN .

Si no se especifica, el valor predeterminado es el host de la ubicación actual del documento, sin incluir los subdominios .

Lo que significa que si está en beta.example.com , el Domain se establecerá en el valor beta.example.com . Esto excluirá la cookie de otros subdominios.

Debe establecer explícitamente el Domain si desea utilizar la cookie en todos los subdominios.

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