كلمات مرور لمرة واحدة بإستخدام OTPZ
OTPZ هي حزمة لارفل أنشأها بن بيورستروم (الذي قام ببرمجة Prezet) تقوم بتوفير كلمات مرور تستخدم لمرة واحدة (OTPs) لتطبيقات لارفل.
يسمح هذا للمستخدمين بإدخال عناوين بريدهم الإلكتروني وتلقي رمز لمرة واحدة لتسجيل الدخول بدلاً من كلمة المرور.
الميزات الرئيسية
- يمكن تحديد عدد مرات استخدامها.
- تحديد مهلة زمنية قبل انتهائها.
- إبطال OTP بعد استخدامه الأول.
- ربط OTP بجلسة المستخدم.
- إبطال OTP بعد العديد من المحاولات الفاشلة.
- عرض رسائل خطأ مفصلة.
- تخصيص قالب البريد الإلكتروني المستخدم.
- سجلات قابلة للتدقيق.
لتثبيتها، قم بتثبيت الحزمة عبر composer:
composer require benbjurstrom/otpz
ثم قم بعمل migration و نشرها:
php artisan vendor:publish --tag="otpz-migrations"php artisan migrate
بعد ذلك، أضف واجهة الحزمة و trait إلى نموذج User
الخاص بك
<?php// app/Models/User.phpnamespace App\Models; //...use BenBjurstrom\Otpz\Models\Concerns\HasOtps;use BenBjurstrom\Otpz\Models\Concerns\Otpable; class User extends Authenticatable implements Otpable{ use HasFactory, Notifiable, HasOtps; // ...}
وأخيراً أضف مسارات الحزمة المُقدّمة في ملف routes/web.php
:
Route::otpRoutes();
اختياريًا، يمكنك نشر طرق العرض والتكوين الافتراضية لتخصيص الأمور بشكل أكبر:
php artisan vendor:publish --tag="otpz-views"php artisan vendor:publish --tag="otpz-config"
الحزمة تعمل مع Laravel Breeze مع Livewire أو Inertia، ويتم تقديم المزيد من التعليمات حول كيفية تحديث طريقة LoginRequest::authenticate
المتعلقة بـ send email
لتشغيل إجراء SendOtp.
إذا كنت تبحث عن طريقة للسماح للمستخدمين بسرعة وآمنة بإمكانية وصول مؤقت أو للاستخدام مرة واحدة فقط إلى النظام، فقد تكون OTPZ الحزمة المناسبة لك.
تعرف على المزيد حول هذه الحزمة واطلع على شفرة المصدر على GitHub.