مهدی اردشیر
مهدی اردشیر
خواندن ۲ دقیقه·۳ سال پیش

گیت در لاراول

Gate
Gate

گیت (Gate)یک قابلیتی است برای اعتبار سنجی دسترسی که با ان میتوان چک کرد که ایا این کاربر اجازه دارد

این کار را انجام بدهد یا نه

گیت در فارسی به معنای دروازه است

گیت ها را میتوان در فایل AuthServiceProvider که مسیر ان App->Providers میباشد و در ان فایل دو متد وجود دارد که ما گیت های خود را در متد boot تعریف میکنیم

برای استفاده از گیت باید فساد ان را اد کنیم تا بتونیم استفاده کنیم

تعریف یک گیت
تعریف یک گیت

در جای name، نام گیت مورد نظر خود را مانند edit-user می نویسیم .با فراخوانی گیت مورد نظر تابع ناشناس اجرا وباید یک مقدار true یا false را برگرداند

توجه کنید گیت ها فقط در صورتی کار میکنن که کاربر لوگین شده باشد

و اینکه در پارامتر اول کاربر لوگین شده به صورت پیش فرض فرستاده می شود و ما می توانیم از ان استفاده کنیم

در Gate یک متدی به نام allows وجود دارد که با استفاده از ان می توان چک کرد که کاربر اجازه این کار را دارد یا نه

خب همان طور که گفته بودم گیت ها مقدار true یا false پس از if برای تست استفاده میکنیم

در عکس بالا اگه کاربر دسترسی داشته باشه به این بخش کد های درونif و اگه نداشته باشه صفحه 403 نشون داده میشه

خب بالا گفته بودم که خود گیت توی اولین پارامتر کاربر لوگین شده رومیفرسته حالا ما برای اینکه یک پارامتر دلخواه ارسال کنیم و بتونیم ازش استفاده کنیم از روش زیر استفاده میکنم


مثل عکس بالا پارامتر دوم رو توی تابع ناشناس اضافه میکنیم و حالا برای اینکه به اون مقداری رو ارسال کنیم

مثل عکس زیر یک پارامتر به متد allows اضافه میکنیم

حالا برای اینکه یک پارامتر دیگه هم بفرسیتم نمی تونیم از روش بالا استفاده کنیم باید پارامتر هارو توی یه ارایه بفرستیم مثل عکس زیر

و دریافت ان هم به شکل زیر هست

حالا میخایم به صورت مثال یک گیت بسازیم وچک کنیم کاربری که لوگین کرده اجازه داره این پست رو تغییر بده یا نه

خوب اول یک گیت تعریف میکنیم با اسم edit-post و دو پارامتر دریافت میکنیم اولیش کاربر لوگین شده و دومی اطلاعات پست و حالا داخل تابع ناشناسه چک میکنیم که ایا این پست برای این کاربر هست یا نه

و حالا میایم از گیتی ک ساختیم استفاده میکنیم


خب میرسیم به روش هایی که میتونیم از گیت استفاده استفاده کنیم

روش بالا من متد allwos رو گفتم و یک متد داریم برعکس اون به اسم denies روش استفاده اش هم مثل allows

روش بعدی authorize هست که فقط در کنترلر ها می شه ازش استفاده کرد

در صورتی که کاربر دسترسی نداشته باشه ارور403 نشون داده میشه

روش بعدی can هست که با استفاده از auth اون رو استفاده میکنیم و اینکه این روش مثل روش allows فقط true و false بر میگردونه

همچنین از can می تونیم توی blade هم استفاده کنیم

درضمن can هم مثل allows برعکس میشه با @cannot

فعلا :)


gatelaravelلاراولدسترسیاحرازهویت
Web Debeloper php-laravel-wordpress
شاید از این پست‌ها خوشتان بیاید