Laravel ialah salah satu rangka kerja PHP paling popular pada masa ini, yang menyediakan sokongan kuat untuk pembangunan aplikasi web. Rangka kerja Laravel juga menyediakan sokongan yang sangat baik untuk model pembangunan pemisahan bahagian hadapan dan belakang, yang boleh membantu pembangun membangun dengan lebih cekap. Dalam aplikasi dengan pemisahan bahagian hadapan dan belakang, pengurusan kebenaran merupakan bahagian yang sangat penting Artikel ini akan memperkenalkan cara menggunakan Laravel untuk melaksanakan pengurusan kebenaran aplikasi pemisahan bahagian hadapan dan belakang.
1. Apakah aplikasi pemisah bahagian hadapan dan belakang?
Aplikasi pemisah bahagian hadapan dan bahagian belakang merujuk kepada pengasingan teknologi yang digunakan oleh bahagian hadapan daripada teknologi yang digunakan oleh bahagian hadapan dan bahagian belakang bukan lagi keseluruhan, tetapi berkomunikasi melalui API antara muka. Bahagian hadapan biasanya dilaksanakan menggunakan rangka kerja JavaScript, manakala bahagian belakang dilaksanakan menggunakan bahasa seperti PHP dan Java.
Dalam aplikasi pemisahan bahagian hadapan dan bahagian belakang, bahagian hadapan dan bahagian belakang masing-masing bertanggungjawab untuk logik perniagaan mereka sendiri bertanggungjawab untuk pelaksanaan antara muka UI dan pengguna interaksi, dan bahagian belakang bertanggungjawab untuk pemprosesan data dan pelaksanaan logik perniagaan. Oleh kerana aplikasi pemisahan bahagian hadapan dan bahagian belakang memisahkan bahagian hadapan dan bahagian belakang, ia membolehkan pembangun menumpukan lebih pada bidang kepakaran mereka, dengan itu meningkatkan kecekapan pembangunan.
2. Mengapa pengurusan kebenaran diperlukan?
Dalam aplikasi, kawalan akses merupakan aspek yang sangat penting. Jika tiada kawalan capaian yang berkesan, penyerang mudah mengeksploitasi kelemahan untuk melakukan operasi yang menyalahi undang-undang, seperti mengubah suai data, memadamkan data, dsb. Oleh itu, adalah sangat perlu untuk menambah pengurusan kebenaran kepada aplikasi.
Pengurusan kebenaran merujuk kepada pengurusan kebenaran setiap peranan dalam sistem. Biasanya beberapa peranan tetap ditakrifkan, seperti pentadbir, pengguna biasa, dsb., setiap peranan mempunyai keizinan fungsi yang berbeza. Pentadbir mempunyai kuasa tertinggi dan boleh mengendalikan semua data dalam sistem pengguna biasa hanya boleh melakukan beberapa operasi asas.
Dalam aplikasi pemisahan bahagian hadapan dan belakang, kaedah pengurusan kebenaran yang biasa digunakan ialah pengurusan kebenaran Token. Bahagian hadapan perlu membawa Token semasa menghantar permintaan, dan bahagian belakang mengesahkan Token untuk menentukan sama ada pengguna mempunyai hak akses. Oleh itu, setiap permintaan yang diterima daripada bahagian hadapan memerlukan pengesahan token.
3. Bagaimana untuk merealisasikan pengurusan kebenaran aplikasi yang dipisahkan di bahagian hadapan dan bahagian belakang?
Dalam rangka kerja Laravel, pengurusan kebenaran biasanya dilaksanakan melalui Laratrust. Laratrust ialah perpustakaan pengurusan kebenaran Laravel yang sangat mudah digunakan Ia boleh digunakan untuk melaksanakan pengurusan peranan dan pengurusan kebenaran dengan sangat mudah.
Berikut ialah langkah-langkah tentang cara menggunakan Laratrust untuk melaksanakan pengurusan kebenaran untuk aplikasi yang dipisahkan bahagian hadapan dan belakang:
Pasang menggunakan Komposer dalam pustaka Laratrust projek Laravel:
composer require santigarcor/laratrust
Terbitkan fail konfigurasi Laratrust, fail migrasi, dsb.:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="laratrust"
Jalankan arahan migrasi Laratrust untuk menjana Peranan, Kebenaran, Role_User dan jadual lain:
php artisan migrate
Dalam fail config/auth.php, konfigurasikan guard sebagai api:
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ],
Dalam fail config/laratrust.php, tentukan peranan dan kebenaran:
'roles' => [ 'admin' => 'Admin', 'user' => 'User', ], 'permissions' => [ 'create-post' => 'Create Post', 'update-post' => 'Update Post', 'delete-post' => 'Delete Post', ],
Dalam UserController, tambahkan kaedah untuk mencipta Token:
public function createToken(Request $request) { $user = $request->user(); $token = $user->createToken('api_token')->accessToken; return [$token]; }
dalam fail app /Http/Kernel.php, tambah perisian tengah Token:
protected $routeMiddleware = [ // ... 'token' => \App\Http\Middleware\TokenMiddleware::class, ];
Dalam fail app/Http/Middleware/TokenMiddleware.php, sahkan Token:
public function handle($request, Closure $next) { $token = $request->header('Authorization'); if (!$token) { return response(['message' => 'Token not provided'], 401); } $user = User::where('api_token', $token)->first(); if (!$user) { return response(['message' => 'Invalid token'], 401); } return $next($request); }
Dalam laluan, tambah middleware Token:
Route::group(['middleware' => ['token', 'role:admin']], function () { Route::post('/posts', 'PostController@store'); Route::put('/posts/{post}', 'PostController@update'); Route::delete('/posts/{post}', 'PostController@destroy'); });
Dalam kod di atas, setiap permintaan perlu lulus Perisian tengah token menjalankan pengesahan dan perlu mengesahkan sama ada ia mempunyai kebenaran peranan pentadbir.
4. Ringkasan
Artikel ini memperkenalkan cara menggunakan Laravel untuk melaksanakan pengurusan kebenaran untuk aplikasi yang dipisahkan di bahagian hadapan dan bahagian belakang. Pengurusan peranan dan pengurusan kebenaran boleh dilaksanakan dengan mudah menggunakan perpustakaan Laratrust, dan perisian tengah Token boleh digunakan untuk mengesahkan setiap permintaan untuk memastikan keselamatan aplikasi.
Dalam pembangunan sebenar, pengurusan kebenaran adalah bahagian yang sangat diperlukan dan perlu dikonfigurasikan secara fleksibel mengikut keperluan sebenar. Saya harap artikel ini dapat membantu pembangun yang perlu melaksanakan pengurusan kebenaran.
Atas ialah kandungan terperinci Cara menggunakan Laravel untuk melaksanakan pengurusan kebenaran untuk aplikasi dipisahkan bahagian hadapan dan belakang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!