Migración de RainbowKit SIWE a NextAuth v5
El paquete @rainbow-me/rainbowkit-siwe-next-auth de RainbowKit ahora es compatible con NextAuth v5. Esta es una actualización importante para las aplicaciones que usan el adaptador SIWE de NextAuth porque NextAuth cambió su API de configuración del servidor, API de asistente de sesión y flujo de CSRF interno.
NextAuth.js es ahora parte del proyecto más amplio Auth.js. El nombre del paquete sigue siendo next-auth, y la documentación oficial de NextAuth.js todavía está disponible en next-auth.js.org. Esta guía utiliza los nombres de paquete next-auth que instala hoy mientras menciona la transición a Auth.js donde afecta a los nombres de cookies y las API de v5.
Siga los pasos a continuación si su aplicación actualmente utiliza @rainbow-me/rainbowkit-siwe-next-auth con NextAuth v4.
1. Actualizar dependencias
Instalar la versión del paquete NextAuth v5 compatible con RainbowKit.
2. Actualizar la configuración del servidor NextAuth
NextAuth v5, documentado como parte del proyecto Auth.js, utiliza el tipo NextAuthConfig, la exportación del proveedor Credentials y los helpers retornados de NextAuth(authOptions).
Auth.js recomienda las variables de entorno AUTH_URL y AUTH_SECRET. Si ya tienes un despliegue de NextAuth v4 usando NEXTAUTH_URL y NEXTAUTH_SECRET, mantenlas como respaldo mientras migras.
Para controladores de rutas de App Router, exporta los controladores GET y POST retornados.
Para rutas API del Pages Router, pasa tus authOptions de v5 a NextAuth.
3. Actualizar las lecturas de sesión del lado del servidor
Si lees la dirección autenticada en getServerSideProps, cambia de helpers de sesión v4 a el helper auth de v5 exportado por tu configuración de auth.
Pasa req y res por separado. Pasar el objeto completo GetServerSidePropsContext a auth no es compatible con las sobrecargas de v5.
4. Actualizar la validación de nonce SIWE
En la implementación de v4, los ejemplos de RainbowKit compararon el nonce de SIWE con getCsrfToken dentro de authorize.
En NextAuth v5, el proveedor Credentials recibe el token CSRF verificado como credentials.csrfToken después de que NextAuth valida la cookie CSRF de la solicitud.
Las cookies internas de NextAuth v5 usan el prefijo authjs de Auth.js, incluyendo authjs.csrf-token o __Host-authjs.csrf-token dependiendo de la configuración de secure-cookie. No deberías necesitar analizar esas cookies tú mismo para el flujo SIWE de RainbowKit.
5. Retornar la dirección autenticada en la sesión
Si tu aplicación lee session.address, sigue mapeando el sujeto del JWT en la sesión en tus callbacks de NextAuth.
Puedes ver la configuración completa de NextAuth v5 en el ejemplo with-next-siwe-next-auth.
Si también estás actualizando desde una integración más antigua de SIWE de RainbowKit, revisa el changelog de 0.5.0 para la migración de viem/siwe y el changelog de 0.3.0 para el cambio de forma de solicitud anterior de getCsrfToken.