es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo configurar una cookie y luego redirigir usando los módulos nativos http/https?

Solo puedo encontrar ejemplos de cómo hacer esto usando Express. He intentado varias cosas, incluyendo esto:

res.writeHead(200, {
    'Set-Cookie': cookie,
    'Content-Type': 'text/plain'
})
res.writeHead(302, {'Location': '/'})
res.end()

Si no intento redireccionar, entonces la cookie se establece normalmente pero el cliente se queda con una página en blanco. Si intento redireccionar, entonces la cookie NO SE ESTABLECE. También he intentado responder con una página HTML con una redirección HTML, pero entonces la cookie NO SE ESTABLECE. La cookie solo se establecerá cuando no haga nada más que establecer la cookie. Pero luego el usuario queda con una página en blanco y tiene que presionar manualmente el botón de actualizar página para ver algo.

EDITAR: si se requiere información adicional para ayudarme, por favor avísenme.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás teniendo problemas para establecer una cookie y redireccionar en Node.js sin usar Express. Una estrategia que puedes probar es utilizar el módulo http de Node.js y encadenar los métodos setHeader y writeHead para establecer la cookie y la redirección en una sola respuesta. Aquí tienes un ejemplo:

    const http = require('http');
    
    http.createServer((req, res) => {
      // Establecer la cookie
      res.setHeader('Set-Cookie', 'miCookie=valor; HttpOnly');
    
      // Redireccionar a /
      res.writeHead(302, { 'Location': '/' });
    
      // Finalizar la respuesta
      res.end();
    }).listen(3000);
    

    En este ejemplo, utilizamos el método setHeader para establecer el encabezado Set-Cookie, y luego encadenamos el método writeHead para establecer el código de estado de redirección y el encabezado Location. Por último, llamamos al método end para finalizar la respuesta.

    Recuerda reemplazar miCookie y valor con el nombre y el valor de la cookie deseados. Además, asegúrate de cambiar la URL de redirección por tu destino deseado.

    ¡Espero que esto te ayude! Déjame saber si tienes alguna pregunta adicional.

Comments are closed.