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

السؤال

نشر

الان هي فكرتها الثنتين ان تتحقق هل البيانات المدخلة صحيحة ام لا ومن ثم تحدد اذا يدخل المستخدم ام لا

ولكن ماهو الفرق بينها مثل image.png.c047513386cfae0860fd8498973b8fcd.pngimage.png.6eba739357ef75cba5778c92b9c3f9e6.png

الان هنا بكل الحالات مايدخل المستخدم على صفحة الا بعد التاكد من البيانات

ليش ماحذفت الـ construct واكتفيت بالحارس في الصفحة المعلومات الشخصية؟

Recommended Posts

  • 0
نشر

الفرق بين middleware و guards 

middleware:

الMiddleware يعمل كفلتر يتم تنفيذه قبل أو بعد طلبات ال HTTP. يُستخدم لفحص الطلبات وتنفيذ العمليات قبل وصولها إلى الروتر أو الكنترولر، أو قبل إرسال الرد للمستخدم يمكنك استخدامه علي سبيل المثال في عمليات مثل التحقق من الأمان، تحويل الطلبات، تسجيل الطلبات، إدارة الجلسات.

افضل مثال يمكنك فهمه هو عملية ال auth وهل المستخدم مسجل دخول ام لا دعنا اولا ننشئ CheckUserAuth مديلوير

php artisan make:middleware CheckUserAuth

ثما انشاء المنطق الخاص بالميدلوير 
 

public function handle($request, Closure $next)
{
    if (!auth()->check()) {
        return redirect('login');
    }

    return $next($request);
}

هذه الكود معناه هو اذا المستخدم مسجل دخول فسيتم الاستمرار في الطلب اما اذا كان غير مسجل فسيتم اعادة توجيه الي صفحة تسجيل الدخول

يمكنك استخدامه بهذه الطريقه 
 

   Route::post('reset-password', [ResetPasswordController::class, 'resetPassword'])->middleware('اسم المديلوير');


ال Guard :

 هي مكونات أساسية تحدد كيفية تحقق النظام من هوية المستخدمين وتحافظ عليها. ببساطة، الـ Guards توفر طبقة التوثيق التي تساعد في التحقق من صحة المستخدمين وإدارة جلسات المستخدم أو توكنات الوصول.

آلية عمل Guards

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

يمكنك اعداد ال guard عليك التوجهه لهذه المسار 
 

config/auth.php

ثما اعداده الويب و لل api 
 

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'token',
        'provider' => 'users',
        'hash' => false,
    ],
],

ثما يمكنك استخدامه بهذه الطريقه 
 

// استخدام Guard الافتراضي
$user = Auth::user();

// استخدام Guard محدد
$user = Auth::guard('api')->user();

 

  • 0
نشر

هنالك العديد من الفروقات التي تحدد استعمالات كل منهما في سياقات معينة، إليك مقارنة بسيطة: 

Middleware أو الطبقات الوسيطة: يتم تشغيلها بشكل أساسي على المسارات، وعادة ما يتم استخدامها كفلتر للتعامل مع الطلبات القادمة. استعمالات شائعة: فحص قيمة ترويسة Header معينة في الطلبية.

أما Guards فهي طريقة لتحديد كيف يتم توثيق ومصادقة المستخدمين للطلبات، استعمالات شائعة: انشاء محمية Guard لمصادقة المستخدمين العاديين وأخرى لمصادقة المشرفين Admins. 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...