الهجرة من NextAuth.js v4 إلى Auth.js v5
دليل للهجرة من تكامل Logto من NextAuth.js v4 إلى v5.
الإصدار الخامس من NextAuth.js هو إعادة كتابة كبيرة لحزمة next-auth
، والتي تجلب تحديثات مهمة تؤثر على العديد من التكاملات، بما في ذلك Logto. سيوجهك هذا الدليل خلال عملية ترحيل تكامل Logto الخاص بك من NextAuth.js v4 إلى Auth.js v5.
لقد قمنا مؤخرًا بتحديث دليل بدء التشغيل السريع لـ NextAuth. تحقق منه!
فهم التغييرات
Auth.js v5
يقدم NextAuth.js v5 عدة تغييرات مهمة، التغيير الرئيسي الذي يؤثر على طريقة تكامل Logto مع تطبيقك هو التغيير في "موفري OIDC/OAuth". في الوثائق الرسمية، يقول "بُني Auth.js الآن على @auth/core مع امتثال أكثر صرامة لمواصفات OAuth/OIDC، مما قد يعطل بعض موفري OAuth الموجودين"، بالنسبة لمستخدمي Logto، يعني هذا أنك بحاجة إلى تحديث تكوين الموفّر.
للمزيد من المعلومات حول التغييرات، يمكنك الرجوع إلى دليل الهجرة الرسمي.
تكوين موفّر Logto
تم تحديث تكوين الموفّر لـ Logto:
- تم تغيير النوع من
oauth
إلىoidc
. - تمت إزالة نقطة النهاية
wellKnown
، وتحتاج إلى توفير حقلissuer
بدلاً من ذلك. - لا حاجة لتحديد خوارزمية توقيع
id_token
، فهي تدعمES384
الآن وسيتم اكتشافها تلقائيًا.
دليل الهجرة خطوة بخطوة
قم بتحديث تكوين الموفّر في ملف /pages/api/auth/[...nextauth].js
الخاص بك باستخدام قالب التكوين الجديد:
الخطوة 1: تغيير نوع الموفّر
قم بتغيير نوع الموفّر من oauth
إلى oidc
.
الخطوة 2: إضافة حقل issuer
أضف حقل issuer
إلى تكوين الموفّر. يمكنك الحصول على قيمة issuer من صفحة تفاصيل تطبيق Logto، في الحقل "نقطة نهاية issuer". ينبغي أن يبدو مثل https://xxxx.logto.app/oidc
إذا كنت تستخدم خدمة سحابة Logto.
ثم يمكنك إزالة الحقل wellKnown
.
الخطوة 3: إزالة خوارزمية توقيع id_token_signed_response_alg
لم تعد بحاجة إلى تحديد خوارزمية توقيع id_token_signed_response_alg
في تكوين الموفّر. إنها تدعم ES384
الآن وسيتم اكتشافها تلقائيًا.
تحديث المشروع
بعد تحديث تكوين الموفّر، عليك تحديث حزمة next-auth
إلى الإصدار الخامس، اتبع دليل الهجرة الرسمي لتحديث الحزمة وتأكد من أن تطبيقك يعمل كما هو متوقع. تأكد أيضًا من الرجوع إلى دليل بدء التشغيل السريع لـ NextAuth.