Saltar al contenido

¿Cómo usar el método getInitialProps de next.js para obtener cookies?

Solución:

Esto puede ser una cosa de cliente vs servidor – componentWillMount() solo se ejecuta en el cliente, por lo que las solicitudes allí siempre incluirían las cookies del cliente. Sin embargo, getInitialProps puede ejecutarse en el servidor y, en ese caso, tendrá que configurar manualmente las cookies.

Puede saber si se está ejecutando en el cliente o en el servidor probando la presencia de options.req:

static getInitialProps({ req }) {
  if (req) {
    console.log('on server, need to copy cookies from req')
  } else {
    console.log('on client, cookies are automatic')
  }
  return {};
}

Y, cuando se ejecuta en el servidor, puede leer las cookies del cliente marcando req.headers.cookie. Entonces, con axios, podría verse así:

static async getInitialProps({req}) {
  const res = await axios({
    url: 'http://mybackend/getCookie',
    // manually copy cookie on server,
    // let browser handle it automatically on client
    headers: req ? {cookie: req.headers.cookie} : undefined,
  });
  return {data : res.data}
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *