Rumah > rangka kerja php > Laravel > teks badan

Cara melaksanakan penapisan data berasaskan kebenaran dan sekatan akses dalam Laravel

WBOY
Lepaskan: 2023-11-02 17:40:50
asal
996 orang telah melayarinya

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.

  1. Buat kelas strategi

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.

  1. Tentukan kaedah dasar

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;
}
Salin selepas log masuk

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.

  1. Daftar kelas strategi

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();
    }
}
Salin selepas log masuk

Dalam kod di atas, pembolehubah $policies memetakan model Post ke kelas PostPolicy, dan kemudian mendaftarkan kelas dasar dalam kaedah Gate::policy.

  1. Gunakan kelas dasar untuk penapisan data dan sekatan akses

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'));
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan