في عالم يفقد السيطرة 🌀 عالم البرمجة لك

borma logo
person




لو شغال على موقع فيه تسجيل دخول فأنت أكيد عارف إن الباسورد لوحده مش كفاية لحماية الحسابات خاصة لو المستخدمين بيستخدموا باسوردات ضعيفة أو متكررة… طيب والحل؟

ـ المصادقة الثنائية (2FA) اللي بتضيف طبقة أمان إضافية عن طريق كود OTP (بيوصل على الإيميل أو تطبيق زي Google Authenticator)، يعني حتى لو حد سرب الباسورد مش هيقدر يدخل من غير الكود.

bell.svg

طيب إزاي نضيف Two-Factor Authentication (2FA) للموقع؟ دا اللي هنشرحه دلوقتي سوا بإذن الله 👇


1️⃣ هنستخدم NextAuth.js مع 2FA

NextAuth.js بيدعم 2FA وده أسرع حل لو بتستخدم OAuth Providers زي Google أو GitHub أو تسجيل دخول بالإيميل عادي.

    • تثبيت NextAuth.js في المشروع:
Copy svg

    • بعد كدا هنعدل الAPI Route الخاصة بالمصادقة (/pages/api/auth/[…nextauth].js):
Copy svg

👈 كدا لما المستخدم يدخل بالباسورد الموقع هيبعت له كود OTP على الإيميل وبعدها لازم يكتبه عشان يقدر يكمل تسجيل الدخول.


2️⃣ إنشاء صفحة تحقق من الكود (OTP Verification Page)

بعد ما المستخدم يدخل لازم يكتب الكود اللي وصله عشان يقدر يدخل لحسابه.

    • إنشاء صفحة /verify-otp.js داخل /pages:
Copy svg

👈 المستخدم بيكتب الكود، ولو صحيح، يدخل على حسابه.


3️⃣ إنشاء API لتأكيد الكود (OTP Verification API)

هنضيف API Route جديدة عشان تتحقق من الكود اللي المستخدم كتبه.

    • إنشاء ملف /pages/api/auth/verify-otp.js:
Copy svg

👈 الكود بيتقارن بالكود المنخزن في الـ DB ولو متطابق المستخدم يدخل.


4️⃣ استخدام Google Authenticator بدل الـ OTP على الإيميل

لو عاوز الـ 2FA يكون أسرع وأفضل استخدم Google Authenticator بدل من الأكواد اللي بتوصل بالإيميل.

    • تثبيت مكتبة Speakeasy لإنشاء أكواد Google Authenticator:
Copy svg

    • لما المستخدم يفعل الـ 2FA، هننشئ كود سري خاص بيه
Copy svg

    • اخر حاجه لما المستخدم يدخل الكود هنتحقق منه:
Copy svg

كدا الموقع بقى فيه 2FA باستخدام OTP أو Google Authenticator، وأمان الحسابات زاد بشكل كبير… بالتوفيق 💛

قسم التعليقات