تحديد ما إذا كان المستخدم الحالي قد تمت مصادقته

Determining If Current User Is Authenticated



مشكلة

تريد معرفة ما إذا كان المستخدم قد قام بتسجيل الدخول.

أنت تعلم أن Laravel يحتفظ تلقائيًا بالمستخدم المصادق عليه في الجلسة. تريد التحقق مما إذا كان الطلب الحالي قد قام بتسجيل الدخول والمصادقة.







حل

استخدم Auth::check() .



ال Auth::check() طريقة إرجاع صح أو خطأ.



لو (المصادقة::التحقق من())
{
رما - طرد - قذف 'ياي! أنت مسجل الدخول.؛
}

مناقشة

تحدث العديد من الأشياء خلف الكواليس عند القيام بذلك.





يتحقق Laravel الأول مما إذا كانت الجلسة الحالية تحتوي على معرف المستخدم. إذا كان الأمر كذلك ، فستتم محاولة استرداد المستخدم من قاعدة البيانات.

إذا فشل ذلك ، فسيقوم Laravel بالتحقق من ملف تعريف الارتباط 'تذكرني'. إذا كان هذا موجودًا ، فستتم محاولة استرداد المستخدم من قاعدة البيانات مرة أخرى.



فقط إذا تم استرداد مستخدم صالح من قاعدة البيانات يتم إرجاعه.

يستخدم فلتر 'الضيف' هذه الطريقة
يوفر Laravel تطبيقًا افتراضيًا لمرشح الضيف في app/filters.php .

طريق::منقي('الزبون'و وظيفة()
{
لو (المصادقة::التحقق من()) إرجاعإعادة توجيه::إلى('/')؛
})؛

يتم استخدام هذا التنفيذ الافتراضي عندما تريد إضافة عامل تصفية إلى مسار لا يمكن الوصول إليه إلا من قبل الضيوف (ويعرف أيضًا باسم المستخدمين الذين لم يقوموا بتسجيل الدخول). إذا تم تسجيل دخول المستخدم ، فسيتم إعادة توجيهه إلى الصفحة الرئيسية.