Перенесення RainbowKit SIWE до NextAuth v5
Пакет RainbowKit @rainbow-me/rainbowkit-siwe-next-auth тепер підтримує NextAuth v5. Це суттєве оновлення для застосунків, що використовують адаптер NextAuth SIWE, тому що NextAuth змінив API конфігурації сервера, API помічника сесій та внутрішній потік CSRF.
NextAuth.js тепер є частиною ширшого проекту Auth.js. Назва пакету залишається next-auth, і офіційну документацію NextAuth.js можна знайти на next-auth.js.org. Це керівництво використовує назви пакетів next-auth, які ви встановлюєте сьогодні, і вказує на перехід до Auth.js там, де це впливає на назви файлів cookie та API v5.
Виконайте наведені нижче кроки, якщо ваш застосунок наразі використовує @rainbow-me/rainbowkit-siwe-next-auth з NextAuth v4.
1. Оновіть залежності
Встановіть версію пакунку NextAuth v5, що підтримується RainbowKit.
2. Оновіть конфігурацію вашого сервера NextAuth
NextAuth v5, задокументований як частина проекту Auth.js, використовує тип NextAuthConfig, експорт постачальника Credentials та допоміжні функції, які повертаються з NextAuth(authOptions).
Auth.js рекомендує використовувати змінні середовища AUTH_URL та AUTH_SECRET. Якщо у вас вже є розгортання NextAuth v4, що використовує NEXTAUTH_URL та NEXTAUTH_SECRET, залиште їх як резервні під час міграції.
Для обробників маршрутів App Router експортуйте повернені обробники GET та POST.
Для маршрутів API Pages Router передайте ваші authOptions v5 до NextAuth.
3. Оновіть читання сесій серверної сторони
Якщо ви читаєте автентифіковану адресу у getServerSideProps, перейдіть від помічників сесії v4 до помічника auth v5, що експортується вашою конфігурацією auth.
Передавайте req та res окремо. Передача повного об'єкта GetServerSidePropsContext до auth не підтримується перевантаженнями v5.
4. Оновіть перевірку SIWE nonce
У реалізації v4 приклади RainbowKit порівнювали SIWE nonce з getCsrfToken всередині authorize.
У NextAuth v5 постачальник Credentials отримує перевірений CSRF токен як credentials.csrfToken після того, як NextAuth валідує CSRF cookie запиту.
Внутрішні cookies NextAuth v5 використовують префікс authjs від Auth.js, включно з authjs.csrf-token або __Host-authjs.csrf-token в залежності від налаштувань безпеки cookie. Вам не потрібно самостійно аналізувати ці cookies для потоку SIWE RainbowKit.
5. Поверніть автентифіковану адресу на сесії
Якщо ваш додаток читає session.address, продовжуйте відображати об'єкт JWT на сесії в ваших зворотніх викликах NextAuth.
Ви можете побачити повну установку NextAuth v5 у прикладі with-next-siwe-next-auth.
Якщо ви також оновлюєтеся з старішої інтеграції SIWE RainbowKit, перегляньте журнал змін 0.5.0 для міграції viem/siwe та журнал змін 0.3.0 для раніших змін getCsrfToken з формою запиту.