Laravel ialah rangka kerja PHP yang sangat popular dengan banyak ciri mudah. Ini termasuk ciri yang dipanggil "kebenaran." Dalam Laravel, kebenaran membantu pembangun mewujudkan sistem kawalan akses untuk aplikasi mereka, memastikan bahawa hanya pengguna yang dibenarkan boleh mengakses titik akhir, halaman atau operasi API tertentu. Seterusnya, kami akan memperkenalkan kaedah kebenaran dalam Laravel.
Dalam Laravel, kebenaran dan peranan ialah konsep yang berkaitan. Peranan ialah jenis pengguna berbeza yang peranan berbeza boleh mengakses bahagian aplikasi yang berbeza. Kebenaran merujuk kepada peraturan yang mengawal bahagian yang boleh diakses oleh pengguna.
Dalam Laravel, peranan boleh dibuat melalui tukang alat baris arahan. Sebagai contoh, kita boleh mencipta peranan bernama "Pentadbir" menggunakan perintah artisan berikut:
php artisan make:role admin
Begitu juga, kita boleh mencipta peranan bernama "Editor Teks":
php artisan make:role editor
Kami kemudian boleh memberikan peranan ini kepada pengguna.
Dalam Laravel, kami boleh menggunakan kebenaran untuk menyekat akses pengguna ke bahagian aplikasi yang berlainan. Keizinan boleh ditakrifkan dalam pengawal untuk memastikan bahawa hanya pengguna yang diberi kuasa boleh melakukan operasi tertentu.
Sebagai contoh, kita boleh mencipta pengawal yang dipanggil "AdminUsersController" yang membenarkan akses kepada pengguna pentadbir sahaja:
php artisan make:controller AdminUsersController
Seterusnya, kita perlu membina pengawal Tentukan komponen kebenaran dalam fungsi :
public function __construct() { $this->authorize('admin'); }
Apabila tiada pengguna yang dibenarkan cuba mengakses pengawal, pengecualian akan dilemparkan. Kita boleh menentukan pengendali pengecualian dalam ExceptionHandler Laravel.
Dalam Laravel, kita boleh mencipta jadual bernama "kebenaran" untuk menyimpan kebenaran untuk fungsi aplikasi. Anda boleh menggunakan tukang alat baris arahan berikut untuk mencipta jadual kebenaran:
php artisan make:model Permission -m
Ini akan menjana fail model bernama "Kebenaran" dan fail migrasi yang berkaitan dengannya.
Fail model termasuk kaedah yang dipanggil "peranan" yang membolehkan kami mendapatkan kebenaran yang dikaitkan dengan peranan dengan cepat:
public function roles() { return $this->belongsToMany(Role::class); }
Kemudian, kami boleh menentukan sebarang Jumlah kebenaran.
Peraturan kebenaran boleh dibuat dan diuruskan dengan menjalankan artisan dari baris arahan oleh pengguna pentadbir dalam aplikasi. Seterusnya, mari lihat cara menggunakan peraturan kebenaran ini dalam amalan.
Dalam Laravel, kita boleh menggunakan muka hadapan kebenaran untuk memudahkan penggunaan kebenaran. Menggunakan fasad, kami boleh menyemak dengan mudah sama ada pengguna yang sedang log masuk mempunyai kebenaran untuk mengakses operasi atau sumber.
Sebagai contoh, kita boleh menggunakan fasad "Gate" untuk menyemak sama ada pengguna semasa mempunyai kebenaran bernama "edit-post":
if (Gate::allows('edit-post', $post)) { // 用户有权编辑帖子 }
Kami juga boleh menentukan melalui "Gate " fasad Peraturan kebenaran baharu untuk menyokong keperluan khusus aplikasi kami:
Gate::define('update-post', function ($user, $post) { return $user->id === $post->user_id; });
Dalam contoh ini, kami mentakrifkan peraturan kebenaran baharu supaya hanya pemilik Siaran yang mempunyai kebenaran untuk mengemas kininya.
Sistem kebenaran Laravel ialah ciri yang sangat mudah yang membolehkan pembangun aplikasi mengawal bahagian atau operasi yang dibenarkan pengguna dengan mudah boleh mengakses. Dengan menggunakan peranan dan kebenaran, kami boleh membina sistem kawalan akses yang berkuasa dan kompleks dengan mudah.
Ringkasnya, rangka kerja Laravel menyediakan kaedah yang mudah dan berkuasa untuk melaksanakan pengurusan kebenaran, menjadikannya lebih mudah bagi pembangun aplikasi untuk mentakrif dan mengurus peranan pengguna dan kebenaran akses mereka, dengan itu mengawal keseluruhan keselamatan Aplikasi dengan lebih baik.
Atas ialah kandungan terperinci Mari bercakap tentang kaedah kebenaran dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!