اذهب إلى المحتوى
  • 0

التحقق من رمز OTP في Laravel

Abdelraheem Mohammed

السؤال

Recommended Posts

  • 0

في حال التحقق من البريد الإلكتروني عليك بإنشاء نموذج لجدول OTP يحتوي على حقول مثل:

  • id
  • user_id
  • otp_code
  • expiry_time

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

وبخصوص التحقق من الهاتف المحمول، فعليك استخدام خدمة SMS خارجية لإرسال OTP، وإنشاء متحكم للتحقق من رمز OTP.

وبأي طريقة فعند عند تسجيل الدخول أو إعادة تعيين كلمة المرور ، قم بإنشاء رمز OTP وإرساله إلى المستخدم.

وعندما يُدخل المستخدم رمز OTP ، فقم بالتحقق من صحة الرمز من خلال:

  • البحث عن رمز OTP في قاعدة البيانات.
  • التأكد من أن رمز OTP لم ينتهِ صلاحيته ومطابق للرمز الذي تم إرساله إلى المستخدم.

وإن كان الـ OTP صحيحًا ، فسجل دخول المستخدم أو أعد تعيين كلمة المرور، ومن الأفضل استخدام OTP له مدة صلاحية قصيرة.

وبالطبع هناك مكتبات تسهل العملية مثل مكتبة laravel-otp

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

ى كيفية التحقق من OTP  في Laravel:

1. تثبيت الحزم اللازمة
يمكنك استخدام حزمة مثل laravel-otp لتبسيط إنشاء والتحقق من OTP. قم بتثبيتها باستخدام :

composer require pragmarx/otp

 

 2. إنشاء وإرسال OTP
أنشئ وحدة تحكم أو استخدم وحدة تحكم قائمة لإنشاء وإرسال OTP إلى المستخدم يمكنك استخدام واجهة Mail المدمجة في Laravel لإرسال البريد الإلكتروني أو استخدام بوابات الرسائل القصيرة لإرسال رسائل نصية
مثال على وحدة التحكم:

use PragmaRX\Otp\Otp;

class OTPController extends Controller
{
    public function generateOTP()
    {
        $otp = app(Otp::class);
        $user = auth()->user(); // نفترض أن المستخدم قد قام بتسجيل الدخول

        $code = $otp->generate($user->email);

        // قم بإرسال الرمز عبر البريد الإلكتروني أو الرسائل القصيرة
        // مثال: Mail::to($user->email)->send(new OtpMail($code));

        return response()->json(['message' => 'تم إنشاء وإرسال OTP بنجاح']);
    }
}

 

 3. التحقق من OTP
أنشئ وحدة تحكم أخرى أو استخدم القائمة الحالية للتعامل مع التحقق من OTP

مثال على وحدة التحكم
 

use PragmaRX\Otp\Otp;

class OTPController extends Controller
{
    public function verifyOTP(Request $request)
    {
        $otp = app(Otp::class);
        $user = auth()->user(); // نفترض أن المستخدم قد قام بتسجيل الدخول

        $isValid = $otp->check($user->email, $request->input('otp'));

        if ($isValid) {
            // OTP صحيح، قم بتنفيذ الإجراءات الضرورية
            return response()->json(['message' => 'تم التحقق من OTP بنجاح']);
        } else {
            // OTP غير صحيح
            return response()->json(['error' => 'OTP غير صحيح'], 422);
        }
    }

 4. تحديد المسارات
قم بتحديد المسارات لإنشاء والتحقق من OTP في ملف web.ph أو api.php

 

Route::post('/generate-otp', 'OTPController@generateOTP');
Route::post('/verify-otp', 'OTPController@verifyOTP')

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 دقائق مضت قال Mustafa Suleiman:

في حال التحقق من البريد الإلكتروني عليك بإنشاء نموذج لجدول OTP يحتوي على حقول مثل:

  • id
  • user_id
  • otp_code
  • expiry_time

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

وبخصوص التحقق من الهاتف المحمول، فعليك استخدام خدمة SMS خارجية لإرسال OTP، وإنشاء متحكم للتحقق من رمز OTP.

وبأي طريقة فعند عند تسجيل الدخول أو إعادة تعيين كلمة المرور ، قم بإنشاء رمز OTP وإرساله إلى المستخدم.

وعندما يُدخل المستخدم رمز OTP ، فقم بالتحقق من صحة الرمز من خلال:

  • البحث عن رمز OTP في قاعدة البيانات.
  • التأكد من أن رمز OTP لم ينتهِ صلاحيته ومطابق للرمز الذي تم إرساله إلى المستخدم.

وإن كان الـ OTP صحيحًا ، فسجل دخول المستخدم أو أعد تعيين كلمة المرور، ومن الأفضل استخدام OTP له مدة صلاحية قصيرة.

وصلت مرحلة انشاء OTP و ارساله الى المستخدم 

ما تبقى البحث عن OTP  في قاعدة البيانات 

و التأكد من  صلاحية ال OTP و مطابقته من الرمز المرسل للمستخدم

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...