Laravel ialah rangka kerja PHP popular yang menyediakan pembangun dengan banyak kemudahan dan alatan untuk mempercepatkan proses pembangunan. Satu ciri yang amat berguna ialah sistem kebenaran pengurusan bahagian belakangnya. Dengan menetapkan kebenaran bahagian belakang Laravel, anda memastikan bahawa hanya pengguna yang dibenarkan boleh mengakses antara muka pentadbir aplikasi anda. Dalam artikel ini, kami akan membincangkan cara menetapkan kebenaran latar belakang dalam Laravel.
Menetapkan kebenaran latar belakang dalam Laravel memerlukan pemasangan pakej perisian berikut:
Kebenaran Laravel ialah pakej pengurusan kebenaran popular yang memudahkan untuk menambah sistem kebenaran pada aplikasi anda. Anda boleh memasangnya ke dalam projek Laravel anda melalui pengurus pakej komposer dengan arahan berikut:
composer require spatie/laravel-permission
Selepas pemasangan selesai, anda perlu menambah pembekal perkhidmatan dan fasad dalam config/app.php
:
'providers' => [ ... Spatie\Permission\PermissionServiceProvider::class, ], 'aliases' => [ ... 'Permission' => Spatie\Permission\Models\Permission::class, 'Role' => Spatie\Permission\Models\Role::class, ],
Sekarang, anda perlu mencipta satu set laluan dan pengawal untuk mengurus kebenaran aplikasi. Anda boleh mentakrifkan laluan ini dalam fail laluan web, contohnya:
Route::group(['middleware' => ['auth']], function () { // 管理角色和权限 Route::resource('roles', 'RoleController'); Route::resource('permissions', 'PermissionController'); // 管理用户角色分配 Route::resource('users', 'UserController'); Route::post('users/{user}/assign-roles', 'UserController@assignRoles')->name('users.assign.roles'); Route::delete('users/{user}/remove-roles/{role}', 'UserController@removeRoles')->name('users.remove.roles'); });
Dalam contoh ini, kami mempunyai empat laluan berbeza yang ditakrifkan:
roles
: untuk Urus peranan dalam permohonan itu. permissions
: Digunakan untuk mengurus kebenaran dalam aplikasi. users
: Digunakan untuk mengurus pengguna dalam aplikasi dan menetapkan peranan kepada mereka. assign-roles
dan remove-roles
: digunakan untuk menetapkan dan mengalih keluar peranan daripada pengguna dalam aplikasi. Seterusnya, cipta pengawal, contohnya:
php artisan make:controller RoleController
Dalam pengawal, anda perlu menulis kaedah yang sepadan dengan laluan. Contohnya, apabila pengguna mengakses laluan roles
, Laravel akan memanggil kaedah RoleController
dalam index
:
public function index() { $roles = Role::paginate(10); return view('roles.index', compact('roles')); }
Ini akan mengembalikan paparan yang mengandungi senarai peranan dan menggunakan laluan bersarang Laravel yang dihantar semula ke penyemak imbas. Dalam paparan, anda menggunakan enjin templat Laravel Blade untuk memberikan data dan memaparkan borang dan butang kepada pengguna jika perlu.
Untuk menyekat akses pengguna ke kawasan pentadbir aplikasi, anda perlu menentukan peranan yang boleh melaksanakan tindakan mana. Sebagai contoh, anda boleh menetapkan peranan Pentadbir kepada pengguna dengan akses penuh dan peranan Editor, yang hanya boleh mengedit artikel, kepada set pengguna yang lain.
Dalam pakej Kebenaran Laravel, anda boleh menggunakan model Permission
dan Role
untuk mentakrif dan mengurus kebenaran ini. Contohnya, untuk membuat kebenaran yang dipanggil "Edit Catatan" anda akan menggunakan kod berikut:
use Spatie\Permission\Models\Permission; $editArticles = Permission::create(['name' => 'edit articles']);
Ini akan mencipta kebenaran baharu dan menyimpannya dalam pangkalan data. Kini anda boleh menetapkannya kepada mana-mana peranan lain seperti Pentadbir atau Editor.
Kini, anda perlu menggunakan auth
middleware untuk menyekat akses kepada laluan pengurusan. Perisian tengah ini akan memastikan pengguna mesti log masuk untuk mengakses laluan yang dilindungi.
Anda boleh menggunakan kaedah Route::group
Laravel untuk membungkus definisi laluan anda dan menggunakan perisian tengah kepada keseluruhan kumpulan:
Route::group(['middleware' => ['auth']], function () { // 受保护的路由 });
Kini, hanya pengguna yang telah disahkan boleh mengakses laluan ini .
Akhir sekali, anda perlu menggunakan pakej Kebenaran Laravel untuk mengawal peranan yang boleh melaksanakan operasi tertentu. Contohnya, untuk memastikan bahawa hanya pengguna yang mempunyai kebenaran "Edit Artikel" boleh mengedit artikel dalam apl anda, anda boleh menggunakan kod berikut:
if(auth()->user()->can('edit articles')){ // 可以编辑文章 } else { // 无权限 }
Coretan kod ini menyemak sama ada pengguna yang disahkan pada masa ini mempunyai " Edit Artikel" kebenaran. Jika pengguna mempunyai kebenaran, dia boleh melakukan operasi yang berkaitan. Jika tidak, mereka tidak akan mempunyai kuasa untuk membuat sebarang perubahan.
Menyediakan kebenaran pentadbir bahagian belakang dalam Laravel memerlukan beberapa langkah, tetapi apabila anda sudah biasa dengannya, anda boleh mengawal dengan mudah pengguna mana yang boleh melakukan tindakan menggunakan pakej Kebenaran Laravel. Dengan cara ini, anda memastikan bahawa hanya pengguna yang dibenarkan mempunyai akses ke kawasan pengurusan aplikasi anda, dengan itu melindungi keselamatan data anda dan mengurangkan risiko keselamatan.
Atas ialah kandungan terperinci Bagaimana untuk menetapkan kebenaran latar belakang dalam laravel (langkah terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!