Rumah  >  Artikel  >  rangka kerja php  >  Cara melaksanakan penghalaan dinamik berasaskan kebenaran dan lompat halaman dalam Laravel

Cara melaksanakan penghalaan dinamik berasaskan kebenaran dan lompat halaman dalam Laravel

王林
王林asal
2023-11-04 15:27:291002semak imbas

Cara melaksanakan penghalaan dinamik berasaskan kebenaran dan lompat halaman dalam Laravel

Melaksanakan penghalaan dinamik berasaskan kebenaran dan lompatan halaman dalam Laravel boleh membantu kami mengawal kebenaran akses pengguna dengan lebih fleksibel dan mencapai pengurusan kebenaran yang lebih halus. Di bawah, pengarang akan menggabungkan contoh kod sebenar untuk memperkenalkan secara terperinci cara melaksanakan penghalaan dinamik berasaskan kebenaran dan lompatan halaman dalam Laravel.

  1. Prinsip Asas

Kawalan kebenaran dalam Laravel biasanya dilaksanakan menggunakan perisian tengah, dan penghalaan dinamik serta lompatan halaman berdasarkan kebenaran juga dilaksanakan melalui perisian tengah. Khususnya, kami boleh menambah perisian tengah apabila mentakrifkan laluan, dan kemudian menggunakan perisian tengah untuk menentukan sama ada pengguna mempunyai kebenaran untuk mengakses laluan Jika tidak, pengguna akan dialihkan ke halaman gesaan akses yang tidak dibenarkan atau halaman lain yang ditentukan.

  1. Langkah pelaksanaan

(1) Cipta laluan

Pertama, kita perlu menentukan laluan yang memerlukan kawalan kebenaran dalam laluan. Apabila menentukan laluan, anda boleh menggunakan kaedah middleware untuk menentukan middleware, seperti yang ditunjukkan di bawah:

Route::get('/admin/user/index', 'UserController@index')->middleware('permission:user-index');

Antaranya, 'permission:user-index' bermaksud menggunakan middleware bernama kebenaran untuk penghakiman kebenaran. Di sini kami menentukan kebenaran yang diperlukan melalui 'pengguna-indeks'. 'Indeks pengguna' ini boleh ditakrifkan sebagai nama kebenaran lain mengikut situasi sebenar.

(2) Cipta perisian tengah

Seterusnya, kita perlu mencipta perisian tengah untuk pertimbangan kebenaran dan lompat halaman. Dalam Laravel, anda boleh menggunakan perintah php artisan make:middleware untuk mencipta middleware, seperti yang ditunjukkan di bawah:

php artisan make:middleware PermissionMiddleware

Selepas pelaksanaan selesai, fail PermissionMiddleware.php akan dijana dalam direktori app/Http/Middleware.

(3) Tulis logik middleware

Dalam fail app/Http/Middleware/PermissionMiddleware.php, kita perlu menulis kod logik middleware. Dalam contoh ini, kami boleh menggunakan fasad Auth Laravel dan menggabungkannya dengan sistem kebenaran kami sendiri untuk menentukan sama ada pengguna mempunyai kebenaran untuk mengakses laluan.

<?php

namespace AppHttpMiddleware;

use Closure;
use IlluminateSupportFacadesAuth;

class PermissionMiddleware
{
    public function handle($request, Closure $next, $permission)
    {
        // 获取当前用户
        $user = auth()->user();

        // 判断是否有权限访问
        if (!$user->can($permission)) {
            // 无权限访问,进行跳转
            abort(404);
        }

        // 有权限访问,继续执行
        return $next($request);
    }
}

Antaranya, parameter $permission ialah nama kebenaran yang diluluskan dalam definisi laluan, yang boleh digunakan untuk menentukan sama ada pengguna semasa mempunyai kebenaran untuk mengakses laluan. Jika tiada kebenaran, kita boleh menggunakan fungsi abort untuk melompat. Di sini, kami menggunakan abort(404) untuk melompat ke halaman 404 Anda juga boleh mengubah suai mengikut situasi sebenar.

(4) Daftar middleware

Sebelum menggunakan middleware, kita perlu mendaftar middleware ke dalam aplikasi Laravel. Dalam fail app/Http/Kernel.php, anda boleh menemui atribut $middlewareGroups dan atribut $routeMiddleware. Kita boleh mendaftarkan middleware ke dalam kedua-dua sifat ini secara berasingan.

Terikat pada sifat $middlewareGroups:

'web' => [
    // ...
    AppHttpMiddlewarePermissionMiddleware::class,
],

Terikat pada harta $routeMiddleware:

'permission' => AppHttpMiddlewarePermissionMiddleware::class,

Di sini, kami mengikat PermissionMiddleware kepada kumpulan middleware 'web', yang bermaksud perisian tengah akan digunakan dalam semua permintaan penghalaan web.

(5) Ujian

Selepas selesai langkah di atas, kami boleh menguji. Semasa ujian ini, kami boleh secara manual membenarkan peranan yang sepadan dalam pangkalan data, dan kemudian mengakses URL yang berkaitan untuk melihat sama ada kami mempunyai hak akses. Saya tidak akan pergi ke butiran di sini.

  1. Ringkasan

Melalui langkah di atas, kami boleh melaksanakan penghalaan dinamik berasaskan kebenaran dan lompat halaman dalam Laravel. Dengan menggunakan perisian tengah, kami boleh menggunakan sistem kebenaran kami sendiri untuk mengawal kebenaran akses pengguna secara fleksibel dan mencapai pengurusan kebenaran yang lebih halus.

Atas ialah kandungan terperinci Cara melaksanakan penghalaan dinamik berasaskan kebenaran dan lompat halaman dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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