madadi
6 سال پیش توسط madadi مطرح شد
9 پاسخ

تفاوت middleware با guard

سلام دوستان وقت بخیر

من کلا بین تفاوت گارد و middleware موندم
ممنون میشم راهنمایی کنید و اینکه گارد چه موقع و کجا استفاده میشه دقیقا


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
3

@madadi
Guard ها مکانیزمی هستن که در حین ورود کاربران در سیستم احراز هویت پیاده سازی میشن و کاربر به سیستم وارد میشه.
از طرف دیگه Middleware ها برای این موارد به کار برده میشند:
بررسی ورودی‌های کاربر، تغییر آن‌ها، تغییر مسیر، تغییر محتوای صفحه و یا توقف اجرای سیستم.


bardia
تخصص : Golang/Laravel
@mrbardia72 6 سال پیش مطرح شد
0

@ali.bayat
یه خورده واضح تر توضیح میدید


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
4

سیستم احراز هویت پیشفرض لاراول قبل از ورژن ۵.۲ بر اساس صفحات وب که شامل لایه‌های username و password بود تعریف می‌شد و بر اساس اطلاعاتی که در بستر post‌ به کنترلرهای موردنظر ارسال می‌شدند، احراز هویت انجام می‌شد و اطلاعات آن به صورت خودکار درون یک Session ذخیره و در غیر این صورت به صفحه دلخواه ارجاع داده می‌شد.

Guard تعریف می کنه که چگونه کاربر برای هر درخواست احراز هویت می کند. (از طریق Session و یا Token)


madadi
@madadi 6 سال پیش مطرح شد
0

@ali.bayat
پس گارد نوع احراز هویت رو تعیین میکنه؟ و میدل ویر بررسی ورودی ها و پاسخ متقابل برا انتقال کاربر هست؟ درسته؟

اینکه میان یه گارد رد تو روت تعریف میکنن مثلا ->guard('admin') یعنی چی؟

ممنون میشم راهنمایی کنید باز


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
3

@madadi

اگر شما فایل config/auth.php رو باز کنید٬ در آرایه guards داریم:

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    ],

لاراول به شما اجازه میده گاردهای متفاوتی رو تنظیم کنید که هر کدوم به یه روش کاربر رو احراز هویت میکنه.

  • یه web گارد داریم که که از session و کوکی استفاده میکنه
  • یه api گارد داریم که از سیستم OAuth token استفاده میکنه

در کنار این ۲ مکانیزم (۲ گارد)٬ شما میتونید گارد کاستوم خودتون رو هم داشته باشید . که در جواب سوال شما admin نام گاردی هست که میخواهیم اون گروه از Route ها باهاش احراز هویت بشند.


madadi
@madadi 6 سال پیش مطرح شد
0

@ali.bayat

بسیار متشکر علی جان

به عنوان آخرین سوال

در مورد ServiceProviderهم اگر اطلاعاتی دارین ممنون میشم راهنمایی کنید. که کار سرویس پرووایدر دقیقا چیه؟


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
3

@madadi
هر چند به بحث این تاپیک مربوط نمیشه اما
طبق مستندات لاراول سرویس پروایدرها محل مرکزی راه اندازی اولیه (Bootstrapping) هر اپلیکیشن لاراول هست.
به طور کلی، به ثبت کردن عملیاتی مانند binding کلاس‌ها در service container، Event Listeners، middleware، و حتی Routeها اشاره دارد. میشه گفت، سرویس پروایدرها مکان مرکزی پیکربندی برنامه و سرویس‌ها است.

این یکی از مباحث مهم لاراول هست. لینک های زیر رو توصیه میکنم:
https://roocket.ir/series/programming-training-package-laravel/episode/3
https://roocket.ir/series/programming-training-package-laravel/episode/4
https://roocket.ir/articles/understanding-laravel-service-container


madadi
@madadi 6 سال پیش مطرح شد
0

@ali.bayat
سلام مجدد علی جان

الان این که تو روت تعریف میشه یعنی میاد و میره گاردی بنام employee-api رو استفاده میکنه برا سنجش ورود کاربران
درسته؟

middleware(['auth:employee-api']

سپاس


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
2

@madadi
دقیقا. گزینه اول auth نام میدلور و employee-api نام گاردیه که روی این رات اعمال میشه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام