¿Cómo definir un secreto JWT en NextAuth.js v4 para evitar errores en la producción? Seguí las instrucciones como decían en la documentación: https://next-auth.js.org/configuration/options#secret .
Y sigo recibiendo esta advertencia (este enlace no explica ningún detalle):
[siguiente-autorización][aviso][NO_SECRET]
Mi [...nextauth].js se ve así:
export default NextAuth({ providers: [ GoogleProvider({ clientId: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET }) ], session: { strategy: "jwt", maxAge: 30 * 24 * 60 * 60, // 30 days updateAge: 24 * 60 * 60, // 24 hours }, jwt: { secret: process.env.JWT_SECRET, maxAge: 60 * 60 * 24 * 30, async encode({ secret, token, maxAge }) {}, async decode({ secret, token }) {}, }, }) JWT_SECRET fue generado por openssl rand -base64 32 .
El secret debe establecerse en el nivel superior en el objeto de configuración next-auth (mismo nivel que providers , session y jwt ), en lugar de estar anidado dentro de jwt .
export default NextAuth({ providers: [ GoogleProvider({ clientId: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET }) ], session: { /*...*/ }, jwt: { /*...*/ }, secret: process.env.JWT_SECRET })