Rumah rangka kerja php Laravel Bagaimana untuk melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel

Bagaimana untuk melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel

Nov 02, 2023 pm 02:35 PM
laravel Kawalan kebenaran Kawalan pelbagai peringkat

Bagaimana untuk melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel

Cara melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel

Kawalan kebenaran adalah salah satu fungsi yang sangat penting semasa membangunkan aplikasi web. Laravel ialah rangka kerja PHP popular yang menyediakan satu set alat berkuasa untuk melaksanakan kawalan kebenaran yang fleksibel. Artikel ini akan memperkenalkan cara melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel dan memberikan contoh kod khusus.

1. Memahami kawalan kebenaran berbilang peringkat

Kawalan kebenaran berbilang peringkat bermakna dalam sistem, pengguna yang berbeza mempunyai tahap kebenaran yang berbeza. Tahap kebenaran yang berbeza membolehkan pengguna melakukan operasi yang berbeza. Sebagai contoh, sistem blog mungkin mempunyai tiga tahap kebenaran: pentadbir, editor dan pembaca. Pentadbir boleh mengedit, menerbitkan dan memadam blog, editor boleh mengedit dan menerbitkan blog, dan pembaca hanya boleh menyemak imbas blog.

Dalam Laravel, kita boleh menggunakan konsep peranan dan kebenaran untuk melaksanakan kawalan kebenaran berbilang peringkat. Peranan ialah satu set kebenaran, dan kebenaran ialah kawalan akses kepada operasi atau sumber.

2. Cipta jadual peranan dan kebenaran

Pertama, kita perlu mencipta dua jadual pangkalan data untuk menyimpan maklumat peranan dan kebenaran. Jadual boleh dibuat dengan mudah menggunakan alat migrasi Laravel.

php artisan make:migration create_roles_table --create=roles
php artisan make:migration create_permissions_table --create=permissions

Kemudian tentukan struktur jadual dalam fail migrasi.

// create_roles_table.php
public function up()
{
    Schema::create('roles', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name')->unique();
        $table->timestamps();
    });
}

// create_permissions_table.php
public function up()
{
    Schema::create('permissions', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name')->unique();
        $table->string('slug')->unique();
        $table->timestamps();
    });
}

Jalankan arahan migrasi pangkalan data untuk mencipta jadual.

php artisan migrate

3. Wujudkan persatuan model

Seterusnya, kita perlu mewujudkan perkaitan antara peranan dan kebenaran.

Tentukan perkaitan banyak-ke-banyak dengan model Kebenaran dalam Role model.

// Role.php
public function permissions()
{
    return $this->belongsToMany('AppPermission');
}

Tentukan perkaitan banyak-ke-banyak dengan Role model dalam model Kebenaran.

// Permission.php
public function roles()
{
    return $this->belongsToMany('AppRole');
}

4. Peranan dan permission middleware

Untuk mencapai kawalan kebenaran berbilang peringkat, kami perlu mencipta middleware untuk mengesahkan sama ada pengguna mempunyai kebenaran yang sepadan. Middleware boleh dibuat menggunakan arahan make:middleware Laravel.

php artisan make:middleware CheckRolePermissions

Buka perisian tengah CheckRolePermissions dan tulis logik pengesahan kebenaran dalam kaedah pemegang.

public function handle($request, Closure $next, $permission)
{
    // 获取当前登录用户的角色
    $roles = auth()->user()->roles;

    foreach ($roles as $role) {
        // 验证当前角色是否拥有指定权限
        if ($role->permissions->contains('slug', $permission)) {
            return $next($request);
        }
    }

    abort(403, 'Unauthorized');
}

5. Gunakan middleware untuk mengesahkan kebenaran

Kini kita boleh menggunakan middleware CheckRolePermissions untuk mengesahkan kebenaran dalam laluan yang perlu mengawal kebenaran.

Route::group(['middleware' => 'auth'], function () {
    Route::get('/admin', 'AdminController@index')->middleware('role:admin');
    Route::get('/editor', 'EditorController@index')->middleware('role:editor');
    Route::get('/reader', 'ReaderController@index')->middleware('role:reader');
});

6. Berikan peranan dan kebenaran kepada pengguna

Untuk membolehkan pengguna mempunyai peranan dan kebenaran yang sepadan, kami perlu menyediakan borang yang sepadan pada halaman pendaftaran atau penyuntingan pengguna. Dalam borang kita boleh memilih peranan dan kebenaran untuk pengguna.

7. Ringkasan

Melalui langkah di atas, kami boleh melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel. Dengan mencipta jadual peranan dan kebenaran, mewujudkan persatuan model, dan mencipta perisian tengah dan perisian tengah aplikasi, kami boleh mencapai tahap kawalan kebenaran yang berbeza. Dengan cara ini, kami boleh menetapkan peranan dan kebenaran yang berbeza kepada pengguna yang berbeza untuk memastikan keselamatan dan fleksibiliti sistem.

Di atas ialah contoh kod khusus tentang cara melaksanakan kawalan kebenaran berbilang peringkat dalam Laravel. Dengan memahami dan menggunakan konsep ini, kami boleh mengurus dan mengawal kebenaran pengguna dengan lebih berkesan apabila membangunkan aplikasi web.

Sila ambil perhatian bahawa artikel ini hanya menyediakan contoh kod Dalam pembangunan sebenar, pengubahsuaian dan pengoptimuman yang sesuai perlu dibuat mengikut keperluan tertentu. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kawalan kebenaran berbilang peringkat 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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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

Topik panas

Tutorial PHP
1517
276
Bagaimana untuk melaksanakan sistem rujukan di Laravel? Bagaimana untuk melaksanakan sistem rujukan di Laravel? Aug 02, 2025 am 06:55 AM

Buat jadual rujukan untuk merekodkan hubungan cadangan, termasuk rujukan, rujukan, kod cadangan dan masa penggunaan; 2. Tentukan hubungan dan hubungan hasmany dalam model pengguna untuk menguruskan data cadangan; 3. Menjana kod cadangan yang unik semasa mendaftar (boleh dilaksanakan melalui peristiwa model); 4. Menangkap kod cadangan dengan menanyakan parameter semasa pendaftaran, mewujudkan hubungan cadangan selepas pengesahan dan mencegah penyimpanan diri; 5. mencetuskan mekanisme ganjaran apabila pengguna yang disyorkan melengkapkan tingkah laku yang ditentukan (urutan langganan); 6. Menjana pautan cadangan yang boleh dikongsi, dan gunakan URL tandatangan Laravel untuk meningkatkan keselamatan; 7. Statistik cadangan paparan di papan pemuka, seperti jumlah cadangan dan nombor yang ditukar; Adalah perlu untuk memastikan kekangan pangkalan data, sesi atau kuki berterusan,

Bagaimana untuk menjalankan projek Laravel? Bagaimana untuk menjalankan projek Laravel? Jul 28, 2025 am 04:28 AM

Checkphp> = 8.1, komposer, dan webserver; 2.cloneorcreateprojectandruncomposerinstall; 3.copy.env.exampleto.envandrunphpartimbeykey : menjana; 4.SetDataBaseSecredentientsin.envandrunphpartisanmigrate-Seed; 5.StartServerWithPhpartisanserve; 6.OptionallyRunnpmins

Bagaimana cara membiakkan pangkalan data di Laravel? Bagaimana cara membiakkan pangkalan data di Laravel? Jul 28, 2025 am 04:23 AM

Buat Fail Seeder: Gunakan PhPartisanMake: SeederSerseeder untuk menghasilkan kelas Seeder, dan masukkan data melalui kilang model atau pertanyaan pangkalan data dalam kaedah RUN; 2. Panggil penyokong lain dalam DatabaseSeeder: Daftar Usereeder, Postseeder, dan lain-lain. Sehingga melalui $ this-> call () untuk memastikan kebergantungan adalah betul; 3. Jalankan Seeder: Jalankan PhPartisandb: Benih untuk menjalankan semua Seeders berdaftar, atau gunakan PhPartisanMigrate: segar-Seed untuk menetapkan semula dan mengisi semula data; 4

Bagaimana untuk melaksanakan bendera ciri dalam aplikasi Laravel? Bagaimana untuk melaksanakan bendera ciri dalam aplikasi Laravel? Jul 30, 2025 am 01:45 AM

ChooseafeatureFlagstrategySuchasconfig-berasaskan, didorong oleh pangkalan data, orthird-partytoolslikeFlagsmith.2.setupadatabase-drivensystembycreatingamigrationforafeature_flagstableWithname, didayakan, andrulesfreate.3

Bagaimana membina API REST dengan Laravel? Bagaimana membina API REST dengan Laravel? Jul 30, 2025 am 03:41 AM

Buat projek Laravel baru dan mulakan perkhidmatan; 2. Menjana model, penghijrahan dan pengawal dan jalankan penghijrahan; 3. Tentukan laluan RESTful dalam Laluan/API.PHP; 4. Melaksanakan kaedah tambahan, penghapusan, pengubahsuaian dan pertanyaan dalam postcontroller dan mengembalikan respons JSON; 5. Gunakan postman atau curl untuk menguji fungsi API; 6. Pilihan menambah pengesahan API melalui Sanctum; Akhirnya dapatkan struktur yang jelas, Laravelrestapi yang lengkap dan boleh diperpanjang, sesuai untuk aplikasi praktikal.

Apakah kontrak repositori di Laravel? Apakah kontrak repositori di Laravel? Aug 03, 2025 am 12:10 AM

Corak repositori adalah corak reka bentuk yang digunakan untuk memusnahkan logik perniagaan dari logik akses data. 1. Ia mentakrifkan kaedah akses data melalui antara muka (kontrak); 2. Operasi khusus dilaksanakan oleh kelas repositori; 3. Pengawal menggunakan antara muka melalui suntikan ketergantungan, dan tidak terus menghubungi sumber data; 4. Kelebihan termasuk kod kemas, kesesuaian yang kuat, penyelenggaraan mudah dan kerjasama pasukan; 5. Berkenaan dengan projek sederhana dan besar, projek kecil boleh menggunakan model secara langsung.

Apakah Orm Fasih di Laravel? Apakah Orm Fasih di Laravel? Jul 29, 2025 am 03:50 AM

Eloquentorm adalah sistem pemetaan relasi objek terbina dalam Laravel. Ia mengendalikan pangkalan data melalui sintaks PHP dan bukannya SQL asli, menjadikan kod lebih ringkas dan mudah dikekalkan; 1. Setiap jadual data sepadan dengan kelas model, dan setiap rekod wujud sebagai contoh model; 2. Mengamalkan mod rekod aktif, dan contoh model boleh disimpan atau dikemas kini dengan sendirinya; 3. Penyerahan batch sokongan, dan atribut yang boleh diisi $ perlu ditakrifkan dalam model untuk memastikan keselamatan; 4. Memberi sokongan hubungan yang kuat, seperti satu-satu, satu-ke-banyak, banyak-banyak, dan lain-lain, dan anda boleh mengakses data yang berkaitan melalui panggilan kaedah; 5. Pembina pertanyaan bersepadu, di mana, Orderby dan kaedah lain boleh dipanggil dirantai untuk membina pertanyaan; 6. Aksesor sokongan dan pengubahsuaian, yang boleh memformat nombor apabila memperoleh atau menetapkan atribut.

Menjamin MySQL dengan keistimewaan tahap objek Menjamin MySQL dengan keistimewaan tahap objek Jul 29, 2025 am 01:34 AM

Tosecuremysqleffectely, useObject-levelprivilygestestestigmilimitusAracCessBasedontheArtheirspecificNeeds.beginbyBySpelythatthatThatBje-levelprivileGeGsapplyTaDataBases, Tabel, orcolumns.

See all articles