NextAuth أداة رائعة حين تحتاج مزودي OAuth أو مخزن جلسات مدعوماً بقاعدة بيانات. لكن للمصادقة البسيطة للمسؤول فقط أو المشاريع التي تتحكم فيها بجميع بيانات الاعتماد، حل JWT مخصص أبسط بشكل ملحوظ وأسهل في الفهم.
المكونات الجوهرية
تحتاج إلى أربعة أشياء: مسار تسجيل دخول يتحقق من بيانات الاعتماد ويضع ملف تعريف ارتباط httpOnly، وأداة JWT تُوقّع الرموز وتتحقق منها، وmiddleware يحمي مسارات المسؤول بقراءة ملف تعريف الارتباط، ومسار تسجيل خروج يمسح ملف تعريف الارتباط. هذا كل شيء.
ملفات تعريف الارتباط httpOnly مقابل localStorage
لا تخزن JWT في localStorage أبداً. أي ثغرة XSS في أي مكان من تطبيقك تمنح المهاجم وصولاً كاملاً لأي قيمة في localStorage. ملفات تعريف الارتباط httpOnly غير متاحة لـ JavaScript على الإطلاق — يتم إرسالها تلقائياً فقط مع طلبات HTTP، مما يجعل XSS عاجزاً عن سرقتها.
حماية المسارات بالـ Middleware
يعمل Middleware في Next.js على الحافة قبل عرض الصفحة، مما يجعله المكان المثالي للتحقق من ملف تعريف ارتباط الجلسة. أعِد التوجيه إلى /auth/login إذا لم يكن هناك رمز صالح. هذا يُبقي الحماية مركزية ويجعل نسيانها في الصفحات الفردية مستحيلاً.