Estoy usando next-auth getSession en rutas API como esta
const mySession = await getSession({ req }); Estoy seguro de que el tipo de mySession es este
type SessionType = { user: { email: string; }; }; Cuando paso el mouse sobre mySession , se muestra así
const mySession: Session | null Esto puede ser null o de tipo Session .
¿Cómo anulo el tipo con el tipo SessionType
probé esto
const mySession = await getSession<SessionType>({ req });esto me da un error
Esperaba 0 argumentos de tipo, pero obtuvo 1.
¿Cómo cambio el tipo del método getSession ?
La razón por la que el método puede devolver un valor nulo es porque es posible que el usuario/llamador de su API no esté autenticado. Así que dudo que realmente quieras hacer eso. En su lugar, podría hacer un uso real de esto de la siguiente manera:
const session = getSession({req}); if(!session) return res.status(401).end(); // From now on session is sure to not be null and you can do whatever you want with itSi realmente tiene un caso de uso legítimo para cambiar el valor que puede tener una sesión, tal vez esto sea útil:
Obtiene el error porque getSession no espera que especifique un tipo, o dicho de otra manera, getSession no se implementa con genéricos.
Lo que puede hacer para extender la sesión es esto:
Ambos pasos se describenaquí.