


Cara menggunakan ThinkPHP6 untuk melaksanakan pengurusan kebenaran peranan pengguna
Dengan perkembangan perniagaan yang berterusan, banyak syarikat kecil dan sederhana mempunyai sistem penyelenggaraan pengguna mereka sendiri, dan pengurusan hak pengguna merupakan bahagian penting daripadanya. Untuk melindungi maklumat sensitif dalam sistem dan memastikan operasi normal perniagaan, kami perlu menggunakan mekanisme pengurusan kebenaran peranan untuk memastikan pengguna dalam peranan yang berbeza hanya boleh mengakses sumber dan data yang ditetapkan.
Artikel ini akan mengambil rangka kerja ThinkPHP6 sebagai contoh untuk memperkenalkan cara menggunakan perisian tengah kawalan kebenaran dan pakej sambungan yang disediakannya untuk melaksanakan pengurusan kebenaran peranan pengguna.
- Buat jadual peranan dan jadual kebenaran
Mula-mula kita perlu menentukan dua jadual pangkalan data, satu jadual peranan, digunakan untuk menyimpan maklumat peranan sistem; jadual kebenaran , digunakan untuk menyimpan maklumat kebenaran sistem.
BUAT JADUAL role
(
id
int(11) BUKAN NULL AUTO_INCREMENT ULASAN 'kunci utama',
name
varchar(20) BUKAN NULL ULASAN 'nama peranan', BUAT JADUAL
(description
int(11) BUKAN NULL AUTO_INNCREMENT ULASAN 'kunci utama',id
varchar(20) BUKAN NULL ULASAN 'nama kebenaran',
varchar( 50) NOT NULL COMMENT 'Permission Description',permission
PRIMARY KUNCI (
)id
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Permission Table';name
Kita boleh guna apa ThinkPHP menyediakan alat migrasi Pangkalan Data untuk mencipta jadual: php think migrate:run. description
Buat model peranan dan kebenaran id
{
protected $table = 'role';
}
gunakan thinkModel;
{
protected $table = 'permission';
}
Buat jadual persatuan peranan dan kebenaran
Memandangkan pengguna mungkin mempunyai berbilang peranan, a peranan juga mungkin Sepadan dengan berbilang kebenaran, jadi kita perlu membuat jadual perkaitan peranan dan kebenaran. Buat jadual role_permission dalam pangkalan data.
BUAT JADUAL
(- int(11) NOT NULL AUTO_INNCREMENT ULASAN 'primary key',
int(11) BUKAN NULL KOMEN 'ID Kebenaran',
KUNCI UTAMA (role_permission
),
KUNCI id
(
),role_id
KUNCI
(permission_id
)
) ENGINE=CHARSET LAALA InnoDB=utf8mb4 KOMEN='Jadual perkaitan kebenaran peranan';id
Tentukan perhubungan banyak-ke-banyak antara peranan dan kebenaran dalam model: role_id
role_id
< ?php
model aplikasi ruang nama;permission_id
permission_id
gunakan thinkModel;
{
protected $table = 'role'; public function permissions() { return $this->belongsToMany( Permission::class, 'role_permission', 'role_id', 'permission_id' ); }
}
model aplikasi ruang nama;
gunakan thinkModel;
{
protected $table = 'permission'; public function roles() { return $this->belongsToMany( Role::class, 'role_permission', 'permission_id', 'role_id' ); }
}
Tentukan middleware
Dalam ThinkPHP6, middleware ialah alat yang berkuasa untuk memproses permintaan Kami boleh melaksanakan kawalan kebenaran melalui middleware. Buat perisian tengah CheckAuth untuk menentukan sama ada pengguna mempunyai kebenaran untuk melaksanakan operasi semasa. Cipta fail CheckAuth.php dalam direktori appmiddleware dengan kod berikut:
namespace appmiddleware;
- gunakan think acadeDb; gunakan think acadeSession;
{
public function handle($request, Closure $next) { if (Session::has('user')) { $roles = Db::table('user') ->alias('u') ->leftJoin('role_user ru', 'u.id = ru.user_id') ->leftJoin('role r', 'ru.role_id = r.id') ->where('u.id', '=', Session::get('user')->id) ->field('r.id') ->select(); $permissions = Config::get('permissions'); foreach ($roles as $role) { $rolePermissions = Db::table('role_permission') ->where('role_id', '=', $role->id) ->field('permission_id') ->select(); foreach ($rolePermissions as $rolePermission) { if (in_array($rolePermission->permission_id, $permissions)) { return $next($request); } } } } abort(403, '没有权限'); }
Perisian tengah ini terlebih dahulu akan menanyakan semua peranan yang dimiliki oleh pengguna semasa semasa merentasi peranan, pertanyaan setiap Jika kebenaran yang dimiliki oleh peranan sepadan dengan permintaan semasa, pelaksanaan akan dibenarkan diteruskan, jika tidak, ralat 403 akan dikembalikan.
Buat fail konfigurasi kebenaran
Untuk memudahkan pengurusan kebenaran sistem, kami boleh menggunakan fungsi Config yang disediakan oleh ThinkPHP untuk menulis semua kebenaran ke dalam fail konfigurasi. Cipta fail permissions.php dalam direktori konfigurasi. kunci/nilai Untuk merekodkan semua kebenaran sistem, kunci ialah integer dan nilai ialah rentetan, yang menunjukkan nama kebenaran.
Memohon middleware- Akhir sekali, kita perlu benar-benar menggunakan middleware di atas. Buka fail middleware.php dalam direktori konfigurasi dan tambah perisian tengah CheckAuth.
kembali [
1 => 'user.create', 2 => 'user.read', 3 => 'user.update', 4 => 'user.delete',
];
Tertib aplikasi middleware dilaksanakan dari hadapan ke belakang mengikut nama kunci tatasusunan. Kita boleh Laraskan susunan pelaksanaan middleware melalui subskrip tatasusunan.
Pada pengawal atau kaedah yang memerlukan kawalan kebenaran, anda boleh menggunakan kaedah middleware untuk mengikat middleware CheckAuth.
- pengawal aplikasi ruang nama;
{
// ... 'check_auth' => appmiddlewareCheckAuth::class,
Atas ialah kandungan terperinci Cara menggunakan ThinkPHP6 untuk melaksanakan pengurusan kebenaran peranan pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Untuk menjalankan projek ThinkPHP, anda perlu: memasang Komposer untuk mencipta projek, masukkan direktori projek dan laksanakan php bin/console serve;

ThinkPHP mempunyai berbilang versi yang direka untuk versi PHP yang berbeza. Versi utama termasuk 3.2, 5.0, 5.1 dan 6.0, manakala versi kecil digunakan untuk membetulkan pepijat dan menyediakan ciri baharu. Versi stabil terkini ialah ThinkPHP 6.0.16. Apabila memilih versi, pertimbangkan versi PHP, keperluan ciri dan sokongan komuniti. Adalah disyorkan untuk menggunakan versi stabil terkini untuk prestasi dan sokongan terbaik.

Cara menggunakan rangka kerja Layui untuk membangunkan sistem pengurusan kebenaran yang menyokong log masuk berbilang pengguna Pengenalan: Dalam era Internet moden, semakin banyak aplikasi perlu menyokong log masuk berbilang pengguna untuk mencapai fungsi yang diperibadikan dan pengurusan kebenaran. Untuk melindungi keselamatan sistem dan privasi data, pembangun perlu menggunakan cara tertentu untuk melaksanakan log masuk berbilang pengguna dan fungsi pengurusan kebenaran. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Layui untuk membangunkan sistem pengurusan kebenaran yang menyokong log masuk berbilang pengguna dan memberikan contoh kod khusus. Persediaan sebelum memulakan pembangunan

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Bagaimana untuk melaksanakan sistem pengurusan kebenaran dalam Laravel Pengenalan: Dengan pembangunan berterusan aplikasi web, sistem pengurusan kebenaran telah menjadi salah satu fungsi asas banyak aplikasi. Laravel, sebagai rangka kerja PHP yang popular, menyediakan pelbagai alatan dan fungsi untuk melaksanakan sistem pengurusan kebenaran. Artikel ini akan memperkenalkan cara melaksanakan sistem pengurusan kebenaran yang mudah dan berkuasa dalam Laravel dan memberikan contoh kod khusus. 1. Reka bentuk idea sistem pengurusan kebenaran Semasa mereka bentuk sistem pengurusan kebenaran, perkara utama berikut perlu dipertimbangkan: peranan dan

"Cadangan Pembangunan: Cara Menggunakan Rangka Kerja ThinkPHP untuk Melaksanakan Tugas Asynchronous" Dengan perkembangan pesat teknologi Internet, aplikasi Web mempunyai keperluan yang semakin tinggi untuk mengendalikan sejumlah besar permintaan serentak dan logik perniagaan yang kompleks. Untuk meningkatkan prestasi sistem dan pengalaman pengguna, pembangun sering mempertimbangkan untuk menggunakan tugas tak segerak untuk melaksanakan beberapa operasi yang memakan masa, seperti menghantar e-mel, memproses muat naik fail, menjana laporan, dsb. Dalam bidang PHP, rangka kerja ThinkPHP, sebagai rangka kerja pembangunan yang popular, menyediakan beberapa cara mudah untuk melaksanakan tugas tak segerak.

Perbandingan prestasi rangka kerja Laravel dan ThinkPHP: ThinkPHP umumnya berprestasi lebih baik daripada Laravel, memfokuskan pada pengoptimuman dan caching. Laravel berfungsi dengan baik, tetapi untuk aplikasi yang kompleks, ThinkPHP mungkin lebih sesuai.

Masalah bahawa folder sementara tidak boleh dipasang tanpa kebenaran menulis adalah sakit kepala bagi ramai pengguna Sebenarnya, operasi itu tidak terlalu menyusahkan Anda hanya perlu memasukkan menu lanjutan anda untuk membuat perubahan kebenaran. Folder sementara tidak boleh dipasang tanpa kebenaran menulis: 1. Pertama, klik kanan Komputer Ini pada desktop, dan kemudian klik "Properties". 2. Kemudian klik "Tetapan Sistem Lanjutan" di bawah. 3. Kemudian klik "Pembolehubah Persekitaran" di bahagian bawah tetingkap. 4. Selepas itu, anda boleh membuka tetingkap pembolehubah persekitaran, klik pada fail tmp dan pilih "Edit". 5. Kemudian klik "Semak Imbas Fail" dalam tetingkap yang terbuka. 6. Tetapkan folder pembolehubah baharu dan klik OK. 7. Akhirnya tunggu sehingga berjaya.
