Laravel ialah rangka kerja PHP yang sangat popular dengan banyak ciri berkuasa, termasuk kebenaran. Dalam artikel ini, kita akan menyelidiki penggunaan kebenaran Laravel.
Apakah kebenaran itu?
Dalam aplikasi web, kebenaran merujuk kepada proses sama ada pengguna mempunyai hak untuk mengakses sumber tertentu atau melakukan operasi tertentu. Keizinan biasanya berlaku selepas pengesahan.
Asas Keizinan Laravel
Idea asas menggunakan kebenaran Laravel adalah untuk mentakrifkan dasar dan kemudian menggunakan dasar ini untuk menentukan sama ada pengguna mempunyai kebenaran untuk mengakses sumber tertentu. Dasar ialah kelas PHP mudah yang mentakrifkan logik untuk menyemak sama ada pengguna boleh mengakses sumber tertentu.
Tentukan dasar
Untuk mencipta dasar, jalankan arahan berikut:
php artisan make:policy PostPolicy --model=Post
Arahan ini akan mencipta kelas (dasar) yang dipanggil PostPolicy yang akan dikaitkan dengan Model pos. Anda boleh menentukan kaedah dalam kelas ini yang akan menentukan sama ada pengguna mempunyai akses kepada model.
Berikut ialah contoh dasar untuk menentukan sama ada pengguna boleh mengemas kini siaran:
class PostPolicy { use HandlesAuthorization; public function update(User $user, Post $post) { return $user->id === $post->user_id; } }
Dalam dasar ini, kaedah kemas kini menerima dua parameter: $user dan $post. $user ialah contoh pengguna semasa dan $post ialah contoh siaran yang akan dikemas kini. Kaedah ini mengembalikan nilai Boolean yang menunjukkan sama ada pengguna mempunyai kebenaran untuk mengemas kini siaran. Dalam contoh ini, kemas kini dibenarkan jika pengguna semasa adalah sama dengan pengarang siaran.
Mendaftar Polisi
Untuk menggunakan polisi, anda mesti mendaftarkannya. Anda boleh mendaftarkan dasar dalam kelas AuthServiceProvider. Dalam kelas ini, anda boleh menggunakan kaedah dasar untuk memetakan model kepada dasar.
Contohnya, kod berikut memetakan model Pos kepada dasar PostPolicy:
protected $policies = [ 'App\Post' => 'App\Policies\PostPolicy', ];
Menggunakan dasar
Setelah anda menentukan dan mendaftarkan polisi, anda boleh gunakannya. Untuk menggunakan dasar, gunakan kaedah kebenaran dalam pengawal atau di mana-mana sahaja.
Sebagai contoh, kod berikut akan menyemak sama ada pengguna semasa mempunyai kebenaran untuk mengemas kini siaran yang diberikan:
public function update(Post $post) { $this->authorize('update', $post); // The user is authorized to update the post... }
Dalam contoh di atas, kaedah kebenaran menerima dua parameter: nama dasar (di sini "kemas kini" dalam contoh ini) dan contoh sumber tertentu ($siaran dalam contoh ini). Jika pengguna mempunyai akses kepada sumber, akses dibenarkan. Jika tidak, AuthorizationException akan dibuang.
Kesimpulan
Keizinan Laravel sangat berkuasa dan boleh digunakan untuk menentukan sama ada pengguna mempunyai kebenaran untuk mengakses sumber tertentu atau melakukan tindakan tertentu. Dalam artikel ini, kami meneroka asas kebenaran Laravel, termasuk menentukan dasar, mendaftarkan dasar dan menggunakan dasar. Saya harap artikel ini membantu anda menggunakan ciri keizinan Laravel dengan lebih baik.
Atas ialah kandungan terperinci Penerokaan mendalam tentang penggunaan kebenaran Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!