RainbowKit SIWE'yi NextAuth v5'e geçirme
RainbowKit'in @rainbow-me/rainbowkit-siwe-next-auth paketi artık NextAuth v5'i desteklemektedir. NextAuth'un sunucu yapılandırma API'si, oturum yardımcı API'si ve dahili CSRF akışı değiştiği için bu, NextAuth SIWE eklentisini kullanan uygulamalar için önemli bir yükseltmedir.
NextAuth.js şimdi daha geniş bir Auth.js projesinin parçası oldu. Paket adı next-auth olarak kalıyor ve resmi NextAuth.js belgeleri hala next-auth.js.org'da mevcuttur. Bu kılavuz, çerez adlarını ve v5 API'lerini etkileyen Auth.js geçişine dikkat çekerken, günümüzde yüklediğiniz next-auth paket adlarını kullanmaktadır.
Uygulamanız şu anda NextAuth v4 ile @rainbow-me/rainbowkit-siwe-next-auth kullanıyorsa, aşağıdaki adımları izleyin.
1. Bağımlılıkları Güncelle
RainbowKit tarafından desteklenen NextAuth v5 paket sürümünü yükleyin.
2. NextAuth sunucu yapılandırmanızı güncelleyin
NextAuth v5, Auth.js projesinin bir parçası olarak belgelenmiştir, NextAuthConfig türünü, Credentials sağlayıcı dışa aktarımını ve NextAuth(authOptions)'tan döndürülen yardımcıları kullanır.
Auth.js, AUTH_URL ve AUTH_SECRET ortam değişkenlerini önerir. NEXTAUTH_URL ve NEXTAUTH_SECRET'i kullanarak bir NextAuth v4 dağıtımınız varsa, geçerken bunları yedek olarak bırakın.
Uygulama Yönlendirici rota işleyicileri için, döndürülen GET ve POST işleyicilerini dışa aktarın.
Sayfalar Yönlendirici API yolları için, v5 authOptions'ınızı NextAuth'a iletin.
3. Sunucu tarafı oturum okumalarını güncelleyin
getServerSideProps içinde kimlik doğrulamalı adresi okuyorsanız, v4 oturum yardımcılarından, auth yapılandırmanız tarafından dışa aktarılan v5 auth yardımcısına geçin.
req ve res'i ayrı ayrı iletin. Tam GetServerSidePropsContext nesnesini auth'a iletmek v5 aşırı yüklemeler tarafından desteklenmez.
4. SIWE nonce doğrulamasını güncelleyin
v4 uygulamasında, RainbowKit örnekleri, authorize içinde getCsrfToken ile SIWE nonce'u karşılaştırdı.
NextAuth v5'te, Credentials sağlayıcısı, isteğin CSRF çerezini NextAuth doğruladıktan sonra, doğrulanmış CSRF belirtecini credentials.csrfToken olarak alır.
NextAuth v5 dahili çerezler, güvenli çerez ayarlarına bağlı olarak authjs öneki ile authjs.csrf-token veya __Host-authjs.csrf-token kullanır. RainbowKit'in SIWE akışı için bu çerezleri kendiniz ayrıştırmanıza gerek yoktur.
5. Oturumda kimlik doğrulama adresini döndürün
Uygulamanız session.address okuduğunda, JWT konusunu NextAuth callback'lerinizde oturuma eşlemeye devam edin.
Tam NextAuth v5 kurulumunu with-next-siwe-next-auth örneğinde görebilirsiniz.
Eski bir RainbowKit SIWE entegrasyonundan da yükseltme yapıyorsanız, viem/siwe geçişi için 0.5.0 değişiklik günlüğünü ve önceki getCsrfToken istek şekli değişikliği için 0.3.0 değişiklik günlüğünü inceleyin.