Rumah > rangka kerja php > Laravel > teks badan

Pembangunan Laravel: Bagaimana untuk mengawal akses menggunakan Kebenaran Laravel?

王林
Lepaskan: 2023-06-13 23:22:12
asal
1278 orang telah melayarinya

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:

  1. Tentukan peranan dan kebenaran pengguna

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

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.

  1. Menggunakan dasar kebenaran dalam pengawal

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);

        // 用户有权限更新文章,继续执行下面的代码...
    }
}
Salin selepas log masuk

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.

  1. Menggunakan dasar kebenaran dalam templat Blade

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

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!

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