يوفر Doorman طريقة لتقييد الوصول إلى تطبيقات Laravel الخاصة بك باستخدام رموز الدعوة.
رموز الدعوة:
لارافيل | بواب |
---|---|
5.x | 3.x |
6.x | 4.x |
7.x | 5.x |
8.x | 6.x |
9.x | 7.x |
10.x | 8.x |
11.x | 9.x |
يمكنك سحب الحزمة باستخدام الملحن:
$ composer require " clarkeash/doorman=^9.0 "
بعد ذلك، قم بترحيل قاعدة البيانات:
$ php artisan migrate
قم بإنشاء رمز دعوة عام واحد مع استرداد واحد، وبدون انتهاء الصلاحية.
Doorman:: generate ()-> make ();
قم بإنشاء 5 رموز دعوة عامة مع استرداد واحد لكل منها، وبدون انتهاء الصلاحية.
Doorman:: generate ()-> times ( 5 )-> make ();
قم بإجراء دعوة مع 10 عمليات استرداد وبدون انتهاء الصلاحية.
Doorman:: generate ()-> uses ( 10 )-> make ();
قم بإجراء دعوة مع عمليات استرداد غير محدودة وبدون انتهاء الصلاحية.
Doorman:: generate ()-> unlimited ()-> make ();
قم بإجراء دعوة تنتهي صلاحيتها في تاريخ محدد.
$ date = Carbon:: now ( ' UTC ' )-> addDays ( 7 );
Doorman:: generate ()-> expiresOn ( $ date )-> make ();
قم بإجراء دعوة تنتهي صلاحيتها خلال 14 يومًا.
Doorman:: generate ()-> expiresIn ( 14 )-> make ();
قم بعمل دعوة لشخص معين.
Doorman:: generate ()-> for ( ' [email protected] ' )-> make ();
بدلاً من ذلك، بدلًا من استدعاء make()
والذي سيعيد مجموعة من الدعوات، يمكنك الاتصال بها once()
إذا كنت تريد إنشاء دعوة واحدة فقط.
$ invite = Doorman:: generate ()-> for ( ' [email protected] ' )-> once ();
dd ( $ invite -> code );
يمكنك استرداد دعوة عن طريق الاتصال بطريقة redeem
. توفير رمز الدعوة وعنوان البريد الإلكتروني بشكل اختياري.
Doorman:: redeem ( ' ABCDE ' );
// or
Doorman:: redeem ( ' ABCDE ' , ' [email protected] ' );
إذا كان البواب قادرًا على استرداد رمز الدعوة، فسيزيد عدد عمليات الاسترداد بمقدار 1، وإلا فسيطرح استثناءً.
InvalidInviteCode
في حالة عدم وجود الكود في قاعدة البيانات.ExpiredInviteCode
إذا تم تعيين تاريخ انتهاء الصلاحية وكان في الماضي.MaxUsesReached
إذا تم بالفعل استخدام رمز الدعوة لأقصى عدد من المرات.NotYourInviteCode
إذا كان عنوان البريد الإلكتروني للدعوة يتطابق مع العنوان المقدم أثناء الاسترداد، أو لم يتم توفيره أثناء الاسترداد. تعمل جميع الاستثناءات المذكورة أعلاه على تمديد DoormanException
حتى تتمكن من التقاط هذا الاستثناء إذا كان تطبيقك لا يحتاج إلى القيام بأي شيء محدد للاستثناءات المذكورة أعلاه.
try {
Doorman:: redeem ( request ()-> get ( ' code ' ), request ()-> get ( ' email ' ));
} catch ( DoormanException $ e ) {
return response ()-> json ([ ' error ' => $ e -> getMessage ()], 422 );
}
يمكنك التحقق من الدعوة عن طريق استدعاء طريقة check
. توفير رمز الدعوة وعنوان البريد الإلكتروني بشكل اختياري. (له نفس توقيع طريقة redeem
باستثناء أنه سيعيد true
أو false
بدلاً من طرح استثناء.
Doorman:: check ( ' ABCDE ' );
// or
Doorman:: check ( ' ABCDE ' , ' [email protected] ' );
من أجل تغيير رسالة الخطأ التي تم إرجاعها من البواب، نحتاج إلى نشر ملفات اللغة كما يلي:
$ php artisan vendor:publish --tag=doorman-translations
ستكون ملفات اللغة بعد ذلك في /resources/lang/vendor/doorman/en
حيث يمكنك تحرير ملف messages.php
، وسيتم استخدام هذه الرسائل بواسطة البواب. يمكنك إنشاء دعم للغات الأخرى عن طريق إنشاء مجلدات إضافية باستخدام ملف messages.php
في الدليل /resources/lang/vendor/doorman
مثل de
حيث يمكنك وضع ترجماتك الألمانية. اقرأ مستندات الترجمة لمزيد من المعلومات.
إذا كنت تفضل التحقق من صحة رمز الدعوة قبل محاولة استرداده أو إذا كنت تستخدم طلبات النماذج، فيمكنك التحقق من صحته على النحو التالي:
public function store ( Request $ request )
{
$ this -> validate ( $ request , [
' email ' => ' required|email|unique:users ' ,
' code ' => [ ' required ' , new DoormanRule ( $ request -> get ( ' email ' ))],
]);
// Add the user to the database.
}
يجب عليك تمرير عنوان البريد الإلكتروني إلى المنشئ للتحقق من صحة الكود مقابل هذا البريد الإلكتروني. إذا كنت تعلم أنه يمكن استخدام الرمز مع أي بريد إلكتروني، فيمكنك ترك المعلمة فارغة.
قم أولاً بنشر تكوين الحزمة:
$ php artisan vendor:publish --tag=doorman-config
في config/doorman.php
سترى:
return [
' invite_table_name ' => ' invites ' ,
];
إذا قمت بتغيير اسم الجدول ثم قمت بتشغيل عمليات الترحيل الخاصة بك، فسوف يستخدم البواب اسم الجدول الجديد.
لإزالة الدعوات المستخدمة والمنتهية الصلاحية، يمكنك استخدام أمر cleanup
:
$ php artisan doorman:cleanup