Estoy implementando la página del tablero con flujo de credenciales con NextJS y next-auth, tengo un tipo de sesión aumentado en next-auth.d.ts según los documentos https://next-auth.js.org/getting-started /typescript#module-aumentation así
import NextAuth from "next-auth"; declare module "next-auth" { interface Session extends NextAuth.DefaultSession { user: { id: string; email: string; }; } }
y funciona como se esperaba en todas partes del lado del cliente. Ahora necesito obtener los datos de la sesión en los accesorios de getServerSide, así que sigo este ejemplo https://next-auth.js.org/configuration/nextjs#unstable_getserversession y, aunque debería obtener el tipo que configuré, obtengo el tipo de sesión predeterminada original que es
export interface DefaultSession extends Record<string, unknown> { user?: { name?: string | null; email?: string | null; image?: string | null; }; expires: ISODateString; }
y obtengo errores porque intenta clasificar los elementos indefinidos en el nombre y la imagen y cuando intento iniciar sesión en el lado del servidor session.id en los accesorios GetServerSide, obtengo undefined.
Este es mi GetServerSideProps:
export const getServerSideProps: GetServerSideProps = async (context) => { const session = await unstable_getServerSession( context.req, context.res, authOptions ); if (!session) { return { redirect: { destination: "/", permanent: false, }, }; } return { props: {}, // will be passed to the page component as props }; };
Gracias por cualquier ayuda