Mi interfaz se ejecuta en localhost: 3000 mientras que el backend que está en nestjs se ejecuta en localhost: 3006. Cuando el usuario se registra o inicia sesión, he configurado la cookie de la siguiente manera
const setCookie = context.res.cookie('cookie-data', { accessToken: token.accessToken, refreshToken: token.refreshToken, user: user, });Ahora, necesito esta cookie para autenticar cada ruta. Quiero decir, si voy a una página en particular que es una página privada, entonces necesito verificar si ese token existe y es válido o no desde la cookie llamando a la API para ese usuario en particular a través del token que obtengo de la cookie. Si es válido, permita que el usuario navegue a esa página; de lo contrario, redirija al usuario para que inicie sesión.
Así es como intento obtener la cookie que está configurada desde el backend mientras el usuario inicia sesión
_app.tsx
function MyApp({ router, pageProps, Component, cookies }) { return ( <> <Header /> { Component.auth ? <Auth cookies={cookies}> <Component key={router.route} {...pageProps} /> </Auth> : <Component key={router.route} {...pageProps} /> } </> ) } MyApp.getInitialProps = async (appContext) => { const appProps = await App.getInitialProps(appContext); let cookies = {}; if (process.browser === false) { cookies = appContext.ctx.req?.cookies; } else { cookies = Cookies.get(); } return { ...appProps, cookies } }exportar MyApp predeterminado
El problema es appContext.ctx.req?.cookies; devuelve un objeto vacío. ¿Cómo puedo recibir una cookie configurada desde backend (nestjs)?
Debería ser
cookies = appContext.ctx.req.headers?.cookie;