Pembangunan Laravel: Bagaimana untuk menggunakan Kebenaran Laravel untuk mengawal akses?
Laravel ialah rangka kerja aplikasi web PHP yang popular yang menyediakan banyak ciri dan komponen yang sangat baik yang boleh membantu kami membangunkan aplikasi web berkualiti tinggi dengan cepat. Salah satunya ialah Keizinan Laravel, yang merupakan ciri yang sangat berguna dalam Laravel yang boleh membantu kami mengawal akses kepada operasi dan halaman sensitif tertentu dalam aplikasi web.
Apakah Keizinan Laravel?
Keizinan Laravel ialah sebahagian daripada rangka kerja Laravel, yang menyediakan satu set API dan fungsi yang boleh membantu kami mengawal kebenaran pengguna dan kawalan akses dalam aplikasi web. Menggunakan Keizinan Laravel, kami boleh mentakrif dan mengurus peranan dan kebenaran pengguna dengan mudah untuk melindungi data dan operasi sensitif dalam aplikasi web.
Bagaimana untuk menggunakan Keizinan Laravel?
Untuk menggunakan Kebenaran Laravel, kita perlu mengikuti langkah berikut:
Pertama, kita perlu menentukan peranan pengguna dan kebenaran. Peranan pengguna ialah satu set hak akses yang menyekat akses pengguna kepada kandungan tertentu berdasarkan peranan mereka. Sebagai contoh, kita boleh menentukan dua peranan: "Pentadbir" dan "Pengguna Biasa".
Dalam Laravel, kami boleh menggunakan dasar kebenaran (Dasar) Laravel untuk menentukan peranan dan kebenaran pengguna. Dasar keizinan ialah kelas yang mentakrifkan peraturan kebenaran Ia mengandungi satu set peraturan yang membenarkan atau menafikan pengguna mengakses sumber tertentu. Kami boleh menentukan dasar kebenaran untuk setiap model dan kemudian menggunakannya dalam pengawal untuk mengesahkan kebenaran pengguna.
Berikut ialah contoh dasar kebenaran mudah untuk menyekat pengguna "pentadbir" daripada mengakses sumber tertentu:
<?php namespace AppPolicies; use AppUser; use IlluminateAuthAccessHandlesAuthorization; class PostPolicy { use HandlesAuthorization; public function before($user, $ability) { if ($user->role === 'admin') { return true; } } public function update(User $user, Post $post) { return $user->id === $post->user_id; } }
Dalam kod contoh di atas, kami mentakrifkan strategi Kebenaran PostPolicy. Dalam dasar kebenaran, kami mula-mula menentukan kaedah sebelum Dalam kaedah ini, kami menentukan sama ada pengguna semasa ialah "pentadbir".
Kemudian, kami mentakrifkan kaedah kemas kini, kami menentukan sama ada pengguna semasa adalah pengarang artikel Jika ya, kembalikan benar, jika tidak, kembalikan palsu, menunjukkan bahawa pengguna semasa tidak mempunyai kebenaran untuk mengemas kini artikel.
Selepas menentukan dasar kebenaran, kita perlu menggunakannya dalam pengawal. Menggunakan fungsi kebenaran dalam Laravel adalah sangat mudah, hanya gunakan kaedah kebenaran dalam pengawal. Kaedah kebenaran boleh menerima dua parameter Parameter pertama ialah nama dasar kebenaran yang akan digunakan, dan parameter kedua ialah sumber yang akan disahkan.
Berikut ialah contoh kod pengawal untuk mengesahkan sama ada pengguna mempunyai kebenaran untuk mengemas kini artikel:
<?php namespace AppHttpControllers; use AppPost; use IlluminateHttpRequest; class PostController extends Controller { public function update(Request $request, Post $post) { $this->authorize('update', $post); // 用户有权限更新文章,继续执行下面的代码... } }
Dalam contoh di atas, kami menggunakan kaedah kebenaran untuk mengesahkan sama ada pengguna mempunyai kebenaran untuk mengemas kini kebenaran artikel. Jika kebenaran berjaya, kod pengawal akan terus melaksanakan logik berikut, jika tidak pengecualian akan dilemparkan.
Selain menggunakan dasar kebenaran dalam pengawal, kami juga boleh menggunakan dasar kebenaran dalam templat Blade. Menggunakan dasar kebenaran dalam templat adalah sangat mudah, hanya gunakan arahan @can dan @cannot.
Berikut ialah contoh kod templat Blade untuk memaparkan kandungan berbeza berdasarkan peranan pengguna:
@if (auth()->user()->can('update', $post)) <a href="{{ route('posts.edit', $post) }}">编辑文章</a> @endif
Dalam contoh di atas, kami telah menggunakan arahan @can untuk memaparkan "Edit" berdasarkan pengguna pautan Artikel peranan". Jika pengguna mempunyai kebenaran untuk mengemas kini artikel, pautan akan dipaparkan, jika tidak, ia tidak akan dipaparkan.
Ringkasan
Keizinan Laravel ialah ciri yang sangat berguna dalam rangka kerja Laravel, yang boleh membantu kami mengurus peranan pengguna dan hak akses dengan mudah, serta melindungi data dan operasi sensitif dalam aplikasi web. Dalam artikel ini, kami memperkenalkan cara menggunakan Keizinan Laravel untuk mengawal kebenaran akses Kami berharap artikel ini dapat membantu anda.
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk mengawal akses menggunakan Kebenaran Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!