عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن .و کاربرانی که دوره کامل آموزش laravel را دنبال می کنند. در جلسه قبل درباره روند تأیید اعتبار در Laravel صحبت کردیم. در این جلسه فرآیند مجوز در لاراول و در مورد نحوه مدیریت مجوز در لاراول بحث خواهیم کرد.
در ادامه ی این مبحث شما با روال کلی مدیریت مجوز در لاراول آشنا خواهید شد.
قبل از شروع در مورد پروسه مجوز در Laravel، اجازه دهید تفاوت بین احراز هویت و مجوز را درک کنیم.
در Authentication سیستم یا برنامه وب، از طریق اعتبارهایی که ارائه می دهند، کاربران آن را شناسایی می کند.
اگر متوجه شود اعتبار معتبر است، آنها تأیید اعتبار می شوند، و یا در غیر این صورت آنها نیستند. در authorization، سیستم یا برنامه وب بررسی می کند که آیا کاربران تأیید شده می توانند به منابع دسترسی پیدا کنند یا آنها را درخواست کنند.
به عبارت دیگر، حقوق و مجوزهای خود را نسبت به منابع درخواست شده بررسی می کند.
اگر متوجه شود که می توانند به منابع دسترسی داشته باشند، به این معنی است که آنها مجاز هستند.
بنابراین، احراز هویت شامل تایید اعتبار کاربری است
و مجوز شامل بررسی حقوق و مجوزها بر روی منابع است که یک کاربر تأیید شده دارد.
لاراول یک مکانیزم ساده برای مجوز فراهم می کند که حاوی دو روش اصلی است یعنی Gates و Policies.
Gates برای تعیین اینکه آیا یک کاربر مجاز به انجام یک کار مشخص شده است استفاده می شود.
آنها معمولا در App / Providers / AuthServiceProvider.php با استفاده از نما ی Gate تعریف می شوند.Gates همچنین تابعی است که برای انجام مکانیسم مجوز به کار می رود.
Policies در یک آرایه اعلام می شوند و در کلاس ها و روش هایی استفاده می شوند که از مکانیسم مجوز استفاده می کنند.
خطوط زیر کد شما را به چگونگی استفاده از Gates و Policy برای اعطای یک کاربر در یک برنامه وب Laravel توضیح می دهد. توجه داشته باشید که در این مثال، تابع boot برای تأیید کاربران استفاده می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php namespace App\Providers; use Illuminate\Contracts\Auth\Access\Gate as GateContract; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; class AuthServiceProvider extends ServiceProvider{ /** * The policy mappings for the application. * * @var array */ protected $policies = [ 'App\Model' => 'App\Policies\ModelPolicy', ]; /** * Register any application authentication / authorization services. * * @param \Illuminate\Contracts\Auth\Access\Gate $gate * @return void */ public function boot(GateContract $gate) { $this->registerPolicies($gate); // } } |
متدها و توابع کمکی فراوانی وجود دارد که در سازمان دهی منطق تخصیص مجوز به شما کمک می کند. در این مبحث به شرح بعضی از آنها در قالب موضوع روال کلی مدیریت مجوز در لاراول پرداختیم.