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

Cara melaksanakan penghalaan dinamik berasaskan kebenaran dan lompat halaman dalam Laravel

Nov 04, 2023 pm 03:27 PM
penghalaan dinamik Kawalan kebenaran Lompat halaman

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:

1

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

Salin selepas log masuk

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:

1

php artisan make:middleware PermissionMiddleware

Salin selepas log masuk

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.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

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

    }

}

Salin selepas log masuk

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:

1

2

3

4

'web' => [

    // ...

    AppHttpMiddlewarePermissionMiddleware::class,

],

Salin selepas log masuk

Terikat pada harta $routeMiddleware:

1

'permission' => AppHttpMiddlewarePermissionMiddleware::class,

Salin selepas log masuk

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penjelasan terperinci tentang fungsi lompat halaman PHP: kemahiran lompat halaman pengepala, lokasi, ubah hala dan fungsi lain Penjelasan terperinci tentang fungsi lompat halaman PHP: kemahiran lompat halaman pengepala, lokasi, ubah hala dan fungsi lain Nov 18, 2023 pm 05:08 PM

Penjelasan terperinci tentang fungsi lompat halaman PHP: kemahiran lompat halaman pengepala, lokasi, ubah hala dan fungsi lain

Cara melaksanakan kawalan kebenaran dan pengurusan pengguna dalam uniapp Cara melaksanakan kawalan kebenaran dan pengurusan pengguna dalam uniapp Oct 20, 2023 am 11:15 AM

Cara melaksanakan kawalan kebenaran dan pengurusan pengguna dalam uniapp

Melaksanakan kebenaran pengguna dan kawalan akses menggunakan PHP dan SQLite Melaksanakan kebenaran pengguna dan kawalan akses menggunakan PHP dan SQLite Jul 29, 2023 pm 02:33 PM

Melaksanakan kebenaran pengguna dan kawalan akses menggunakan PHP dan SQLite

Amalan Terbaik untuk Ciri Keizinan Laravel: Cara Mengawal Kebenaran Pengguna dengan Betul Amalan Terbaik untuk Ciri Keizinan Laravel: Cara Mengawal Kebenaran Pengguna dengan Betul Nov 02, 2023 pm 12:32 PM

Amalan Terbaik untuk Ciri Keizinan Laravel: Cara Mengawal Kebenaran Pengguna dengan Betul

Pengurusan pengguna dan kawalan kebenaran dalam Laravel: melaksanakan berbilang pengguna dan tugasan peranan Pengurusan pengguna dan kawalan kebenaran dalam Laravel: melaksanakan berbilang pengguna dan tugasan peranan Aug 12, 2023 pm 02:57 PM

Pengurusan pengguna dan kawalan kebenaran dalam Laravel: melaksanakan berbilang pengguna dan tugasan peranan

Gunakan uniapp untuk mencapai kesan animasi lompat halaman Gunakan uniapp untuk mencapai kesan animasi lompat halaman Nov 21, 2023 pm 02:15 PM

Gunakan uniapp untuk mencapai kesan animasi lompat halaman

Panduan Pembangunan PHP: Cara Melaksanakan Kawalan Akses Laman Web Panduan Pembangunan PHP: Cara Melaksanakan Kawalan Akses Laman Web Aug 18, 2023 pm 10:46 PM

Panduan Pembangunan PHP: Cara Melaksanakan Kawalan Akses Laman Web

Cara menggunakan ACL (Senarai Kawalan Akses) untuk kawalan kebenaran dalam Rangka Kerja Zend Cara menggunakan ACL (Senarai Kawalan Akses) untuk kawalan kebenaran dalam Rangka Kerja Zend Jul 29, 2023 am 09:24 AM

Cara menggunakan ACL (Senarai Kawalan Akses) untuk kawalan kebenaran dalam Rangka Kerja Zend

See all articles