Penggunaan fungsi kebenaran Laravel yang cekap: Cara mereka bentuk sistem kebenaran yang fleksibel dan berskala, contoh kod khusus diperlukan
Pengenalan:
Pengurusan kebenaran pengguna ialah ciri penting dan biasa apabila membangunkan aplikasi web. Sebagai rangka kerja PHP yang popular, Laravel menyediakan fungsi pengurusan kebenaran yang berkuasa, yang boleh membantu kami melaksanakan kawalan kebenaran pengguna dengan mudah. Artikel ini akan memperkenalkan cara mereka bentuk sistem kebenaran yang fleksibel dan berskala serta cara menggunakan fungsi kebenaran dengan cekap dalam rangka kerja Laravel.
1. Reka bentuk kebenaran:
Sebelum mula melaksanakan fungsi kebenaran, anda perlu mereka bentuk struktur jadual kebenaran. Secara umumnya, sistem kebenaran melibatkan tiga konsep teras: Pengguna, Peranan dan Kebenaran.
Berdasarkan konsep di atas, kami boleh mereka bentuk struktur jadual data berikut:
jadual pengguna:
jadual pengguna:
permission_role table:
composer require spatie/laravel-permission
php artisan make:model Permission -m
$table->string('name'); $table->timestamps();
php artisan make:model Role -m php artisan make:model RoleUser -m
Tambah medan dalam jadual peranan dan fail migrasi jadual role_user:
$table->string('name'); $table->timestamps();
Buat model pengguna dan model perkaitan peranan pengguna:
php artisan make:model User -m php artisan make:model UserRole -m
Tambah medan dalam jadual pengguna dan fail migrasi jadual pengguna_role:
$table->string('name'); $table->timestamps();
php artisan migrate
use SpatiePermissionTraitsHasRoles; class User extends Authenticatable { use Notifiable, HasRoles; // 其他代码... }
Route::get('/admin', function () { // 检查用户是否具有 "管理权限" if (auth()->user()->hasPermissionTo('manage')) { return view('admin.dashboard'); } else { abort(403, '你没有权限访问该页面!'); } });
$role = Role::create(['name' => 'admin']); $permission = Permission::create(['name' => 'manage']);
Atas ialah kandungan terperinci Penggunaan cekap fungsi kebenaran Laravel: Cara mereka bentuk sistem kebenaran yang fleksibel dan berskala. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!