Rumah > pembangunan bahagian belakang > tutorial php > Perisian tengah Laravel: Tambahkan pengurusan kebenaran dan kawalan peranan pengguna pada aplikasi anda

Perisian tengah Laravel: Tambahkan pengurusan kebenaran dan kawalan peranan pengguna pada aplikasi anda

王林
Lepaskan: 2023-07-28 14:44:02
asal
1014 orang telah melayarinya

Laravel middleware: Tambahkan pengurusan kebenaran dan kawalan peranan pengguna pada aplikasi

Dalam aplikasi web moden, pengurusan kebenaran dan kawalan peranan pengguna adalah fungsi yang sangat penting. Dengan menggunakan perisian tengah yang disediakan oleh rangka kerja Laravel, kami boleh melaksanakan fungsi ini dengan mudah. Artikel ini akan memperkenalkan cara menggunakan perisian tengah Laravel untuk menambah pengurusan kebenaran dan kawalan peranan pengguna.

Pertama, kita perlu mencipta middleware yang dipanggil "RoleMiddleware". Perisian tengah ini akan bertanggungjawab untuk menyemak peranan pengguna dan memproses permintaan akses berdasarkan peranannya. Di bawah ialah contoh middleware asas.

<?php

namespace AppHttpMiddleware;

use Closure;
use IlluminateSupportFacadesAuth;

class RoleMiddleware
{
    public function handle($request, Closure $next, $role)
    {
        if (!Auth::check() || !Auth::user()->hasRole($role)) {
            abort(403, 'Unauthorized.');
        }

        return $next($request);
    }
}
Salin selepas log masuk

Dalam contoh di atas, kami mula-mula menyemak sama ada pengguna itu disahkan (iaitu log masuk). Kami kemudian menyemak sama ada peranan pengguna sepadan dengan peranan yang diperlukan. Jika pengguna tidak mempunyai peranan yang diperlukan, kami akan mengembalikan ralat 403.

Seterusnya, kita perlu menentukan peranan dan kebenaran untuk setiap pengguna. Kita boleh mencapai ini dengan mencipta model Peranan dan Kebenaran. Berikut adalah contoh mudah.

<?php

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class Role extends Model
{
    public function permissions()
    {
        return $this->belongsToMany(Permission::class);
    }
}

class Permission extends Model
{
    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }
}
Salin selepas log masuk

Dalam contoh di atas, terdapat hubungan banyak-ke-banyak antara model Peranan dan Kebenaran. Ini bermakna peranan boleh mempunyai berbilang kebenaran dan kebenaran boleh dimiliki oleh berbilang peranan.

Kemudian, kita perlu menentukan kaedah dalam model Pengguna untuk menyemak sama ada pengguna mempunyai peranan tertentu. Berikut adalah contoh.

<?php

namespace AppModels;

use IlluminateFoundationAuthUser as Authenticatable;

class User extends Authenticatable
{
    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }

    public function hasRole($role)
    {
        if ($this->roles()->where('name', $role)->exists()) {
            return true;
        }

        return false;
    }
}
Salin selepas log masuk

Dalam contoh di atas, kaedah hasRole menerima nama peranan sebagai parameter dan menyemak sama ada pengguna mempunyai peranan itu.

Kini, kami boleh menggunakan perisian tengah yang kami cipta dalam laluan untuk menambah pengurusan kebenaran dan kawalan peranan pengguna. Berikut adalah contoh.

Route::group(['middleware' => 'role:admin'], function () {
    // 添加需要角色为admin的路由
});

Route::group(['middleware' => 'role:editor'], function () {
    // 添加需要角色为editor的路由
});

Route::group(['middleware' => 'role:user'], function () {
    // 添加需要角色为user的路由
});
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan perisian tengah peranan untuk menyekat peranan pengguna yang mengakses laluan tertentu. Hanya pengguna yang mempunyai peranan yang sesuai boleh mengakses laluan ini.

Dengan menggunakan perisian tengah, kami boleh menambahkan pengurusan kebenaran dan kawalan peranan pengguna pada aplikasi kami dengan mudah. Kami boleh menentukan peranan yang berbeza mengikut keperluan dan memberikannya kepada pengguna yang berbeza. Dengan menggunakan perisian tengah peranan, kami boleh memastikan bahawa hanya pengguna dengan peranan yang sepadan boleh mengakses laluan terhad.

Semoga artikel ini berguna untuk memahami dan menggunakan perisian tengah Laravel untuk menambah pengurusan kebenaran dan kawalan peranan pengguna. Dengan mengkonfigurasi perisian tengah dengan betul, kami boleh melindungi aplikasi kami dengan lebih baik dan mencapai keselamatan yang lebih tinggi.

Atas ialah kandungan terperinci Perisian tengah Laravel: Tambahkan pengurusan kebenaran dan kawalan peranan pengguna pada aplikasi anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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