Dalam bab sebelum ini, kami telah mengkaji tentang proses pengesahan dalam Laravel. Bab ini menerangkan kepada anda proses kebenaran dalam Laravel.
Sebelum meneruskan pembelajaran lebih lanjut tentang proses kebenaran dalam Laravel, mari kita fahami perbezaan antara pengesahan dan kebenaran.
Dalam pengesahan, sistem atau aplikasi web mengenal pasti penggunanya melalui kelayakan yang mereka berikan. Jika ia mendapati bahawa kelayakan itu sah, ia disahkan, atau sebaliknya, ia tidak.
Dalam keizinan, sistem atau aplikasi web menyemak sama ada pengguna yang disahkan boleh mengakses sumber yang mereka cuba akses atau membuat permintaan. Dalam erti kata lain, ia menyemak hak dan kebenaran mereka ke atas sumber yang diminta. Jika ia mendapati bahawa mereka boleh mengakses sumber, ini bermakna mereka diberi kuasa.
Oleh itu, pengesahan melibatkan pemeriksaan kesahihan bukti kelayakan pengguna, dan keizinan melibatkan pemeriksaan hak dan kebenaran ke atas sumber yang dimiliki oleh pengguna yang disahkan.
Laravel menyediakan mekanisme mudah untuk kebenaran yang mengandungi dua cara utama, iaitu Gates dan Polisi.
Gates digunakan untuk menentukan sama ada pengguna dibenarkan untuk melakukan tindakan tertentu. Ia biasanya ditakrifkan dalam App/Providers/AuthServiceProvider.php menggunakan fasad Gate. Gates juga merupakan fungsi yang diisytiharkan untuk melaksanakan mekanisme kebenaran.
Dasar diisytiharkan dalam tatasusunan dan digunakan dalam kelas dan kaedah yang menggunakan mekanisme kebenaran.
Barisan kod berikut menerangkan kepada anda cara menggunakan Gates dan Polisi untuk membenarkan pengguna dalam aplikasi web Laravel. Ambil perhatian bahawa dalam contoh ini, fungsi boot digunakan untuk memberi kebenaran kepada pengguna.
<?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); // } }
Atas ialah kandungan terperinci Laravel - Keizinan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!