Rumah > Artikel > rangka kerja php > Cara melaksanakan penapisan data berasaskan kebenaran dan sekatan akses dalam Laravel
Laravel ialah rangka kerja PHP yang sangat baik yang menyediakan alat pengesahan dan kebenaran yang berkuasa untuk melaksanakan penapisan data berasaskan kebenaran dan sekatan akses dalam aplikasi dengan mudah.
Artikel ini akan menunjukkan cara menggunakan dasar (Dasar) dalam Laravel untuk penapisan data berasaskan kebenaran dan sekatan akses, serta memberikan contoh kod khusus.
Dalam Laravel, anda boleh menggunakan baris arahan untuk menjana kelas strategi dengan cepat. Masukkan arahan berikut dalam terminal:
php artisan make:policy PostPolicy
Perintah ini akan menjana kelas dasar bernama PostPolicy.
Seterusnya, tentukan kaedah dasar dalam kelas PostPolicy. Contohnya, jika anda perlu mengehadkan hanya pentadbir dan pengarang siaran daripada mengedit siaran, anda boleh menambah kaedah berikut pada kelas PostPolicy:
public function update(User $user, Post $post) { return $user->isAdmin() || $user->id === $post->user_id; }
Kaedah di atas menggunakan model Pengguna dan model Post yang disediakan oleh Laravel, di mana $user ialah pengguna semasa dan $post ialah Catatan semasa. Kaedah ini akan kembali benar jika pengguna semasa ialah pentadbir atau pengguna semasa ialah pengarang siaran, jika tidak ia akan mengembalikan palsu.
Seterusnya, anda perlu mendaftar kelas strategi dalam AppServiceProvider. Tambahkan kod berikut dalam kaedah but:
<?php namespace AppProviders; use IlluminateFoundationSupportProvidersAuthServiceProvider as ServiceProvider; use IlluminateSupportFacadesGate; use AppPoliciesPostPolicy; use AppPost; class AuthServiceProvider extends ServiceProvider { protected $policies = [ Post::class => PostPolicy::class, ]; public function boot() { $this->registerPolicies(); } }
Dalam kod di atas, pembolehubah $policies memetakan model Post ke kelas PostPolicy, dan kemudian mendaftarkan kelas dasar dalam kaedah Gate::policy.
Akhir sekali, anda boleh menggunakan kelas dasar dalam pengawal untuk penapisan data dan sekatan akses. Contohnya, dalam pengawal pengeditan siaran:
public function edit(Post $post) { $this->authorize('update', $post); return view('posts.edit', compact('post')); }
Dalam kod di atas, kaedah kebenaran digunakan untuk menyemak sama ada pengguna semasa mempunyai kebenaran untuk mengemas kini siaran. Jika pengguna mempunyai kebenaran, kembali ke halaman pengeditan, jika tidak pengecualian 403 HTTP akan dilemparkan.
Ringkasnya, menggunakan kelas dasar boleh dengan mudah melaksanakan penapisan data berasaskan kebenaran dan sekatan akses dalam Laravel, meningkatkan keselamatan dan kebolehpercayaan sistem.
Atas ialah kandungan terperinci Cara melaksanakan penapisan data berasaskan kebenaran dan sekatan akses dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!