Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk menggunakan ACL (Senarai Kawalan Akses) dalam CakePHP?

Bagaimana untuk menggunakan ACL (Senarai Kawalan Akses) dalam CakePHP?

Jun 04, 2023 am 09:10 AM
acl cakephp senarai kawalan capaian

CakePHP ialah rangka kerja pembangunan web PHP yang pantas dan fleksibel dengan banyak ciri berguna, salah satunya ialah Senarai Kawalan Akses (ACL). ACL membolehkan anda menentukan pengguna yang boleh mengakses bahagian mana aplikasi anda. Walau bagaimanapun, jika anda seorang pembangun baru atau tidak biasa dengan senarai kawalan akses, ia mungkin berasa sedikit mengelirukan. Dalam artikel ini, saya akan menunjukkan kepada anda cara menggunakan ACL dalam CakePHP.

Apakah itu senarai kawalan akses?

Senarai kawalan akses ialah mekanisme keselamatan yang mengehadkan pengguna yang boleh mengakses sumber dalam sistem. ACL boleh digunakan pada semua peringkat aplikasi, seperti pengawal, tindakan dan pandangan. ACL biasanya terdiri daripada dua aspek: peranan dan kebenaran. Peranan ialah sekumpulan pengguna dan kebenaran ialah peraturan yang menentukan perkara yang boleh dilakukan oleh peranan.

Langkah 1: Sediakan jadual pangkalan data

Untuk menggunakan ACL dalam CakePHP, anda perlu menyediakan jadual pangkalan data untuk menyimpan maklumat pengguna, peranan dan kebenaran. Pendekatan mudah ialah membuat tiga jadual dalam aplikasi anda: pengguna, peranan dan kebenaran. Berikut ialah penyataan penciptaan jadual SQL untuk jadual ini:

CREATE TABLE users (

id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE,
password CHAR(40),
role_id INT UNSIGNED
Salin selepas log masuk

);

CREATE TABLE roles (

id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) UNIQUE
Salin selepas log masuk
Salin selepas log masuk

);

BUAT keizinan JADUAL (

id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) UNIQUE
Salin selepas log masuk
Salin selepas log masuk

);

Langkah 2: Cipta model

Seterusnya, anda perlu mencipta model untuk berinteraksi dengan jadual dalam pangkalan data. Dalam CakePHP, anda boleh menggunakan alat baris arahan untuk menjana kod model. Contohnya, untuk mencipta model Pengguna, jalankan arahan berikut:

Pengguna model tong/kek

Kemudian, edit fail model yang dijana mengikut keperluan. Dalam contoh ini, kita perlu menambah kod untuk model pengguna yang dipautkan kepada model peranan:

Pengguna kelas memanjangkan AppModel {

public $belongsTo = array('Role');
Salin selepas log masuk

}

Kemudian, anda perlu untuk mencipta peranan dan Kebenaran dimodelkan dengan cara yang sama.

Langkah 3: Konfigurasikan komponen ACL

Seterusnya, anda perlu mengkonfigurasi komponen ACL. Dalam CakePHP, komponen ACL tersedia sebagai komponen pengawal. Tambahkan kod berikut dalam AppController anda:

public $components = array(

'Acl',
'Auth' => array(
    'authorize' => array(
        'Actions' => array('actionPath' => 'controllers')
    )
)
Salin selepas log masuk

);

Ini akan mendayakan komponen ACL dan Pengesahan serta mentakrifkan Keizinan "Tindakan" taip. Pilihan "actionPath" menentukan laluan ke tindakan pengawal.

Langkah 4: Buat peranan dan kebenaran untuk pengguna

Seterusnya, anda perlu mencipta peranan dan kebenaran yang sepadan untuk setiap pengguna dalam pangkalan data. Ini boleh dilakukan melalui kaedah AclComponent::allow() dalam komponen ACL. Berikut ialah contoh:

// Benarkan John mengakses tindakan tambah dan edit PostsController
$this->Acl->allow(array('User' => 'John' ), 'pengawal/Siaran/tambah');
$this->Acl->allow(array('User' => 'John'), 'controllers/Posts/edit');

Ini boleh dilakukan semasa pemulaan aplikasi atau apabila setiap pengguna mula-mula log masuk.

Langkah Lima: Semak Kebenaran Pengguna

Setelah anda menetapkan peranan dan kebenaran kepada setiap pengguna dalam pangkalan data, anda boleh menyemak menggunakan kaedah AclComponent::check() dalam komponen ACL Sama ada pengguna mempunyai akses kepada tindakan. Contohnya:

jika ($this->Acl->check(array('User' => 'John'), 'controllers/Posts/add')) {

// John has permissions to access the add action in the Posts controller
Salin selepas log masuk

} lain {

// John does not have permissions to access the add action in the Posts controller
Salin selepas log masuk

}

Ringkasan

Di atas adalah asas cara menggunakan ACL dalam CakePHP. Untuk mengetahui lebih lanjut tentang kefungsian ACL dan cara menetapkan tahap kawalan akses yang lebih tinggi kepada peranan dan kebenaran, lihat bahagian Senarai Kawalan Akses dalam dokumentasi CakePHP. Menggunakan ACL boleh membantu anda melindungi aplikasi anda dan memastikan bahawa hanya pengguna yang dibenarkan boleh mengakses maklumat sensitif.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan ACL (Senarai Kawalan Akses) dalam CakePHP?. 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

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

CakePHP Bekerja dengan Pangkalan Data CakePHP Bekerja dengan Pangkalan Data Sep 10, 2024 pm 05:25 PM

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Bagaimana untuk menggunakan Twig dengan CakePHP? Bagaimana untuk menggunakan Twig dengan CakePHP? Jun 05, 2023 pm 07:51 PM

Menggunakan Twig dalam CakePHP ialah cara untuk memisahkan templat dan paparan, menjadikan kod lebih modular dan boleh diselenggara. 1. Pasang Twig Mula-mula pasang perpustakaan Twig dalam projek Anda boleh menggunakan Komposer untuk menyelesaikan tugas ini. Jalankan arahan berikut dalam konsol: composerrequire "twig/twig:^2.0" Perintah ini akan dipaparkan dalam vendor projek

See all articles