تکنولوژی نوین اینترنتی
در لاراول، Middleware ابزاری است که برای فیلتر کردن درخواستها پیش از رسیدن به کنترلرها استفاده میشود. این ویژگی به شما این امکان را میدهد که اقدامات خاصی را قبل از پردازش درخواستها انجام دهید، مانند احراز هویت، بررسی دسترسی، اعتبارسنجی و دیگر کارها. در ارتباط با احراز هویت (Authentication)، میتوان از Middleware برای جلوگیری از دسترسی کاربران غیرمجاز به بخشهایی از اپلیکیشن استفاده کرد.
لاراول بهطور پیشفرض یک Middleware به نام auth دارد که برای بررسی احراز هویت کاربران استفاده میشود. این Middleware بررسی میکند که آیا کاربر وارد سیستم شده است یا خیر. اگر کاربر وارد نشده باشد، به صفحه ورود هدایت میشود.
authدر لاراول، یک Middleware به نام auth برای احراز هویت کاربران به طور پیشفرض وجود دارد. این Middleware در فایلهای Route و Controller استفاده میشود.
در صورت نیاز به محافظت از مسیرهایی که تنها کاربران احراز هویت شده میتوانند به آنها دسترسی داشته باشند، میتوانید از Middleware auth در مسیرهای خود استفاده کنید. به عنوان مثال:
در اینجا، اگر کاربر وارد نشده باشد، درخواست به صفحه ورود هدایت خواهد شد. اگر کاربر وارد سیستم باشد، به صفحه داشبورد دسترسی خواهد داشت.
همچنین میتوانید از Middleware در کنترلرها برای محافظت از برخی از متدها استفاده کنید. به طور مثال:
در اینجا، تمام متدهای کنترلر DashboardController توسط Middleware auth محافظت میشوند، یعنی فقط کاربران احراز هویت شده میتوانند به این متدها دسترسی داشته باشند.
میتوانید گروهی از مسیرها را با استفاده از Middleware auth محافظت کنید. این کار برای مدیریت مسیرهایی که نیاز به احراز هویت دارند بسیار مفید است:
در اینجا، تمام مسیرهایی که درون گروه middleware('auth') قرار دارند، فقط برای کاربران وارد شده قابل دسترسی خواهند بود.
گاهی ممکن است نیاز به پیادهسازی منطق احراز هویت خاصی داشته باشید. در این صورت میتوانید یک Middleware سفارشی برای این منظور ایجاد کنید. برای ایجاد یک Middleware جدید در لاراول میتوانید از دستور Artisan استفاده کنید:
سپس در فایل app/Http/Middleware/CheckRole.php منطق احراز هویت دلخواه خود را پیادهسازی کنید:
در اینجا از auth()->check() برای بررسی اینکه کاربر وارد شده است یا نه و از auth()->user()->role برای بررسی نقش کاربر استفاده کردهایم.
سپس، در فایل app/Http/Kernel.php باید Middleware خود را ثبت کنید:
در نهایت، میتوانید از این Middleware در مسیرهای خود استفاده کنید:
لاراول سیستمهای مختلفی برای مدیریت احراز هویت فراهم میکند، مانند Laravel Sanctum و Laravel Passport. برای هر یک از این سیستمها، لاراول Middleware خاصی فراهم کرده است تا احراز هویت کاربران را در APIها انجام دهد.
اگر از Sanctum برای احراز هویت API استفاده میکنید، میتوانید از Middleware auth:sanctum استفاده کنید:
در اینجا، auth:sanctum بررسی میکند که درخواست حاوی توکن معتبر است یا خیر.
اگر از Passport برای احراز هویت API استفاده میکنید، میتوانید از Middleware auth:api استفاده کنید:
در اینجا، auth:api بررسی میکند که آیا درخواست حاوی توکن دسترسی معتبر است یا خیر.
اگر یک کاربر وارد نشده باشد و به مسیری که نیاز به احراز هویت دارد دسترسی پیدا کند، لاراول به طور پیشفرض او را به صفحه ورود هدایت میکند. اما اگر بخواهید این رفتار را تغییر دهید، میتوانید در Middleware Authenticate سفارشیسازی انجام دهید.
برای مثال، در فایل app/Http/Middleware/Authenticate.php میتوانید مسیری که کاربران غیرمجاز باید به آن هدایت شوند را مشخص کنید:
Middleware در لاراول ابزار قدرتمندی برای مدیریت احراز هویت کاربران است. از آن میتوانید برای محافظت از مسیرهای خاص، بررسی ورود کاربران، مدیریت دسترسی به منابع مختلف و حتی سفارشیسازی نحوه مدیریت درخواستها استفاده کنید. لاراول همچنین از امکاناتی مانند auth و سیستمهای احراز هویت مبتنی بر Sanctum و Passport پشتیبانی میکند تا به سادگی کاربران را احراز هویت و مدیریت کنید.