Migrar de NextAuth.js v4 a Auth.js v5
Una guía para migrar la integración de Logto de NextAuth.js v4 a v5.
La versión 5 de NextAuth.js es una reescritura importante del paquete next-auth
, que trae actualizaciones que rompen la compatibilidad y afectan varias integraciones, incluida Logto. Esta guía te guiará a través del proceso de migración de tu integración de Logto de NextAuth.js v4 a Auth.js v5.
Entendiendo los Cambios
Auth.js v5
NextAuth.js v5 introduce varios cambios importantes. El principal cambio que afecta la forma en que integras Logto con tu aplicación es el cambio en los "Proveedores OIDC/OAuth". En la documentación oficial, se dice "Auth.js ahora se basa en @auth/core con un cumplimiento más estricto de las especificaciones OAuth/OIDC, lo que podría romper algunos proveedores de OAuth existentes". Para los usuarios de Logto, esto significa que necesitas actualizar la configuración del proveedor.
Para obtener más información sobre los cambios, puedes consultar la guía de migración oficial.
Configuración del proveedor de Logto
La configuración del proveedor de Logto se ha actualizado:
- El tipo se ha cambiado de
oauth
aoidc
. - Se ha eliminado el endpoint
wellKnown
, y ahora debes proporcionar el campoissuer
en su lugar. - No es necesario especificar el algoritmo de firma
id_token
, ahora se admiteES384
y se detectará automáticamente.
Guía paso por paso para la migración
Actualiza la configuración del proveedor en tu archivo pages/api/auth/[...nextauth].js
con la nueva plantilla de configuración:
Paso 1: Cambiar el tipo de proveedor
Cambia el tipo de proveedor de oauth
a oidc
.
Paso 2: Agregar el campo issuer
Agrega el campo issuer
a la configuración del proveedor. Puedes obtener el valor de issuer desde la página de detalles de la aplicación Logto, en el campo "Issuer endpoint". Debería verse como https://xxxx.logto.app/oidc
si estás usando el servicio en la nube de Logto.
Luego puedes eliminar el campo wellKnown
.
Paso 3: Eliminar el algoritmo de firma id_token_signed_response_alg
Ya no es necesario especificar el algoritmo de firma id_token_signed_response_alg
en la configuración del proveedor. Ahora se admite ES384
y se detectará automáticamente.
Actualiza el proyecto
Después de actualizar la configuración del proveedor, necesitas actualizar el paquete next-auth
a v5, sigue la guía de migración oficial para actualizar el paquete y asegúrate de que tu aplicación funcione como se espera.