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

274
Views
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 answers
Answer question

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 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!