Cara melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel
Kawalan kebenaran adalah salah satu fungsi yang sangat penting semasa membangunkan aplikasi web. Laravel ialah rangka kerja PHP popular yang menyediakan satu set alat berkuasa untuk melaksanakan kawalan kebenaran yang fleksibel. Artikel ini akan memperkenalkan cara melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel dan memberikan contoh kod khusus.
1. Memahami kawalan kebenaran berbilang peringkat
Kawalan kebenaran berbilang peringkat bermakna dalam sistem, pengguna yang berbeza mempunyai tahap kebenaran yang berbeza. Tahap kebenaran yang berbeza membolehkan pengguna melakukan operasi yang berbeza. Sebagai contoh, sistem blog mungkin mempunyai tiga tahap kebenaran: pentadbir, editor dan pembaca. Pentadbir boleh mengedit, menerbitkan dan memadam blog, editor boleh mengedit dan menerbitkan blog, dan pembaca hanya boleh menyemak imbas blog.
Dalam Laravel, kita boleh menggunakan konsep peranan dan kebenaran untuk melaksanakan kawalan kebenaran berbilang peringkat. Peranan ialah satu set kebenaran, dan kebenaran ialah kawalan akses kepada operasi atau sumber.
2. Cipta jadual peranan dan kebenaran
Pertama, kita perlu mencipta dua jadual pangkalan data untuk menyimpan maklumat peranan dan kebenaran. Jadual boleh dibuat dengan mudah menggunakan alat migrasi Laravel.
php artisan make:migration create_roles_table --create=roles php artisan make:migration create_permissions_table --create=permissions
Kemudian tentukan struktur jadual dalam fail migrasi.
// create_roles_table.php public function up() { Schema::create('roles', function (Blueprint $table) { $table->increments('id'); $table->string('name')->unique(); $table->timestamps(); }); } // create_permissions_table.php public function up() { Schema::create('permissions', function (Blueprint $table) { $table->increments('id'); $table->string('name')->unique(); $table->string('slug')->unique(); $table->timestamps(); }); }
Jalankan arahan migrasi pangkalan data untuk mencipta jadual.
php artisan migrate
3. Wujudkan persatuan model
Seterusnya, kita perlu mewujudkan perkaitan antara peranan dan kebenaran.
Tentukan perkaitan banyak-ke-banyak dengan model Kebenaran dalam Role model.
// Role.php public function permissions() { return $this->belongsToMany('AppPermission'); }
Tentukan perkaitan banyak-ke-banyak dengan Role model dalam model Kebenaran.
// Permission.php public function roles() { return $this->belongsToMany('AppRole'); }
4. Peranan dan permission middleware
Untuk mencapai kawalan kebenaran berbilang peringkat, kami perlu mencipta middleware untuk mengesahkan sama ada pengguna mempunyai kebenaran yang sepadan. Middleware boleh dibuat menggunakan arahan make:middleware Laravel.
php artisan make:middleware CheckRolePermissions
Buka perisian tengah CheckRolePermissions dan tulis logik pengesahan kebenaran dalam kaedah pemegang.
public function handle($request, Closure $next, $permission) { // 获取当前登录用户的角色 $roles = auth()->user()->roles; foreach ($roles as $role) { // 验证当前角色是否拥有指定权限 if ($role->permissions->contains('slug', $permission)) { return $next($request); } } abort(403, 'Unauthorized'); }
5. Gunakan middleware untuk mengesahkan kebenaran
Kini kita boleh menggunakan middleware CheckRolePermissions untuk mengesahkan kebenaran dalam laluan yang perlu mengawal kebenaran.
Route::group(['middleware' => 'auth'], function () { Route::get('/admin', 'AdminController@index')->middleware('role:admin'); Route::get('/editor', 'EditorController@index')->middleware('role:editor'); Route::get('/reader', 'ReaderController@index')->middleware('role:reader'); });
6. Berikan peranan dan kebenaran kepada pengguna
Untuk membolehkan pengguna mempunyai peranan dan kebenaran yang sepadan, kami perlu menyediakan borang yang sepadan pada halaman pendaftaran atau penyuntingan pengguna. Dalam borang kita boleh memilih peranan dan kebenaran untuk pengguna.
7. Ringkasan
Melalui langkah di atas, kami boleh melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel. Dengan mencipta jadual peranan dan kebenaran, mewujudkan persatuan model, dan mencipta perisian tengah dan perisian tengah aplikasi, kami boleh mencapai tahap kawalan kebenaran yang berbeza. Dengan cara ini, kami boleh menetapkan peranan dan kebenaran yang berbeza kepada pengguna yang berbeza untuk memastikan keselamatan dan fleksibiliti sistem.
Di atas ialah contoh kod khusus tentang cara melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel. Dengan memahami dan menggunakan konsep ini, kami boleh mengurus dan mengawal kebenaran pengguna dengan lebih berkesan apabila membangunkan aplikasi web.
Sila ambil perhatian bahawa artikel ini hanya menyediakan contoh kod Dalam pembangunan sebenar, pengubahsuaian dan pengoptimuman yang sesuai perlu dibuat mengikut keperluan tertentu. Harap artikel ini membantu anda!
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!