Menggunakan teknologi kebenaran Auth dalam ThinkPHP6
Jun 20, 2023 pm 05:50 PMDengan pembangunan aplikasi Internet yang berterusan, keselamatan aplikasi Web telah menjadi isu yang semakin penting Bagaimana untuk memastikan keselamatan program telah menjadi masalah yang dihadapi oleh semua pembangun. Teknologi kebenaran pengesahan ialah penyelesaian popular yang menyediakan kawalan akses berasaskan peranan.
Dalam artikel ini, kami akan meneroka cara menggunakan teknologi kebenaran Pengesahan dalam ThinkPHP6. Pertama, kita perlu menjelaskan prinsip kerja dan konsep teras kebenaran Pengesahan.
- Cara kebenaran Pengesahan berfungsi
Inti kebenaran Pengesahan ialah kawalan akses berasaskan peranan, yang terbahagi terutamanya kepada tiga langkah berikut:
1.1 Cipta peranan
Sebelum menggunakan kebenaran Pengesahan, anda perlu mencipta peranan terlebih dahulu. Peranan ialah satu set kebenaran yang mentakrifkan akses yang dimiliki pengguna.
1.2 Berikan kebenaran kepada peranan
Selepas mencipta peranan, anda perlu memberikan kebenaran yang sepadan kepada peranan itu. Kebenaran merujuk kepada kebenaran modul atau data berfungsi yang boleh diakses.
1.3 Berikan peranan kepada pengguna
Akhir sekali, peranan perlu diberikan kepada pengguna. Seorang pengguna boleh diberikan berbilang peranan, yang menentukan hak akses yang dimiliki pengguna.
Dalam aliran kerja kebenaran Pengesahan, gunakan pengawal Akses untuk melaksanakan kawalan akses. Pengawal Akses digunakan untuk menyemak sama ada pengguna mempunyai hak akses kepada URL semasa Jika pengguna mempunyai hak akses, dia boleh terus mengakses kandungan yang berkaitan.
- Menggunakan teknologi kebenaran Auth dalam ThinkPHP6
Sekarang kami telah memahami cara kebenaran Auth berfungsi, di bawah kami akan menerangkan secara terperinci cara menggunakan teknologi kebenaran Auth dalam ThinkPHP6. Katakan kita mempunyai dua jenis pengguna di latar belakang: pentadbir dan pengguna biasa. Pentadbir boleh mengakses semua modul kandungan, manakala pengguna biasa hanya boleh mengakses beberapa kandungan.
2.1 Pasang dan konfigurasikan pemalam Auth
Sebelum menggunakan teknologi Auth, kita perlu memasang dan mengkonfigurasi pemalam Auth terlebih dahulu. Dalam ThinkPHP6, pemalam Auth telah disepadukan ke dalam rangka kerja dan boleh digunakan dengan konfigurasi mudah.
Pertama, cipta fail konfigurasi auth.php dalam direktori konfigurasi Maklumat konfigurasi adalah seperti berikut:
return [ // 用戶認(rèn)證的類名,不設(shè)置則使用核心集成認(rèn)證方法 'auth' => AppAuth::class, // 不需要認(rèn)證的路由,可允許所有用戶訪問的路由 'no_auth' => ['index/index'], // 需要認(rèn)證且驗(yàn)證失敗時(shí)跳轉(zhuǎn)的地址 'fail_url' => 'index/login', ];
2.2 Cipta model Pengguna
Buat model Pengguna. Kod yang berkaitan adalah seperti berikut:
<?php namespace appmodel; use thinkModel; class User extends Model { // 定義角色關(guān)聯(lián) public function roles() { return $this->belongsToMany(Role::class, 'user_role'); } // 判斷用戶是否有權(quán)限訪問當(dāng)前操作 public function hasPermission($permission) { foreach ($this->roles as $role) { if ($role->checkPermission($permission)) { return true; } } return false; } }
2.3 Cipta Role model
Cipta Role model, kod yang berkaitan adalah seperti berikut:
<?php namespace appmodel; use thinkModel; class Role extends Model { // 定義權(quán)限關(guān)聯(lián) public function permissions() { return $this->belongsToMany(Permission::class, 'role_permission'); } // 檢查角色是否有權(quán)限訪問當(dāng)前操作 public function checkPermission($permission) { foreach ($this->permissions as $item) { if ($item->name == $permission) { return true; } } return false; } }
2.4 Cipta model Permission
Buat model Kebenaran, kod yang berkaitan adalah seperti berikut:
<?php namespace appmodel; use thinkModel; class Permission extends Model { }
2.5 Cipta jadual pangkalan data
Buat jadual pangkalan data, termasuk jadual pengguna, jadual peranan, jadual kebenaran dan dua hubungan jadual pengguna_peranan dan peranan_kebenaran.
Struktur berkaitan jadual pengguna:
Field | Type | Comment |
---|---|---|
id | int | |
username | varchar(20) | |
password | varchar(255) | |
created_at | datetime | |
updated_at | datetime |
struktur berkaitan jadual peranan:
Field | Type | Comment |
---|---|---|
id | int | |
name | varchar(20) | |
created_at | datetime | |
updated_at | datetime |
struktur berkaitan jadual kebenaran:
Field | Type | Comment |
---|---|---|
id | int | |
name | varchar(20) |
jadual peranan_pengguna Struktur berkaitan:
Field | Type | Comment |
---|---|---|
id | int | |
user_id | int | |
role_id | int |
struktur berkaitan jadual role_permission:
Field | Type | Comment |
---|---|---|
id | int | |
role_id | int | |
permission_id | int |
2.6 Pelaksanaan kod pengawal
Yang berikut menggunakan pengawal sampel untuk menggambarkan cara melaksanakan kebenaran Pengesahan. Kod pengawal sampel adalah seperti berikut:
<?php namespace appdmincontroller; use appmodelUser; use thinkController; class Index extends Controller { // 后臺(tái)首頁 public function index() { // 獲取當(dāng)前登錄用戶 $user_id = session('user_id'); $user = User::find($user_id); // 判斷用戶是否有權(quán)限訪問當(dāng)前操作 if (!$user->hasPermission($this->request->path())) { $this->error('無權(quán)訪問'); } return view(); } // 登錄頁面 public function login() { return view(); } // 處理登錄請求 public function do_login() { $username = $this->request->param('username'); $password = $this->request->param('password'); // 根據(jù)用戶名查詢用戶 $user = User::where('username', $username)->find(); // 驗(yàn)證用戶密碼 if ($user && password_verify($password, $user->password)) { // 記錄登錄狀態(tài) session('user_id', $user->id); // 跳轉(zhuǎn)到后臺(tái)首頁 $this->redirect('index/index'); } else { $this->error('登錄失敗'); } } // 退出登錄 public function logout() { session('user_id', null); $this->redirect('index/login'); } }
- Ringkasan
Dalam artikel ini, kami memperkenalkan prinsip kerja, konsep teras dan pelaksanaan aplikasi kebenaran Auth dalam ThinkPHP6. Menggunakan teknologi kebenaran Pengesahan secara berkesan boleh meningkatkan keselamatan aplikasi web dan menyediakan pengguna dengan perkhidmatan yang lebih selamat dan boleh dipercayai. Dalam proses pembangunan aplikasi web yang seterusnya, kita juga harus memberi perhatian kepada jaminan keselamatan dan menggunakan teknologi keselamatan sedia ada sebaik mungkin.
Atas ialah kandungan terperinci Menggunakan teknologi kebenaran Auth dalam ThinkPHP6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

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)

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.

Kertas kerja ini meneroka masalah mengesan objek dengan tepat dari sudut pandangan yang berbeza (seperti perspektif dan pandangan mata burung) dalam pemanduan autonomi, terutamanya cara mengubah ciri dari perspektif (PV) kepada ruang pandangan mata burung (BEV) dengan berkesan dilaksanakan melalui modul Transformasi Visual (VT). Kaedah sedia ada secara amnya dibahagikan kepada dua strategi: penukaran 2D kepada 3D dan 3D kepada 2D. Kaedah 2D-ke-3D meningkatkan ciri 2D yang padat dengan meramalkan kebarangkalian kedalaman, tetapi ketidakpastian yang wujud dalam ramalan kedalaman, terutamanya di kawasan yang jauh, mungkin menimbulkan ketidaktepatan. Manakala kaedah 3D ke 2D biasanya menggunakan pertanyaan 3D untuk mencuba ciri 2D dan mempelajari berat perhatian bagi kesesuaian antara ciri 3D dan 2D melalui Transformer, yang meningkatkan masa pengiraan dan penggunaan.

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.

Kertas StableDiffusion3 akhirnya di sini! Model ini dikeluarkan dua minggu lalu dan menggunakan seni bina DiT (DiffusionTransformer) yang sama seperti Sora. Ia menimbulkan kekecohan apabila ia dikeluarkan. Berbanding dengan versi sebelumnya, kualiti imej yang dijana oleh StableDiffusion3 telah dipertingkatkan dengan ketara Ia kini menyokong gesaan berbilang tema, dan kesan penulisan teks juga telah dipertingkatkan, dan aksara bercelaru tidak lagi muncul. StabilityAI menegaskan bahawa StableDiffusion3 ialah satu siri model dengan saiz parameter antara 800M hingga 8B. Julat parameter ini bermakna model boleh dijalankan terus pada banyak peranti mudah alih, dengan ketara mengurangkan penggunaan AI

Ramalan trajektori memainkan peranan penting dalam pemanduan autonomi Ramalan trajektori pemanduan autonomi merujuk kepada meramalkan trajektori pemanduan masa hadapan kenderaan dengan menganalisis pelbagai data semasa proses pemanduan kenderaan. Sebagai modul teras pemanduan autonomi, kualiti ramalan trajektori adalah penting untuk kawalan perancangan hiliran. Tugas ramalan trajektori mempunyai timbunan teknologi yang kaya dan memerlukan kebiasaan dengan persepsi dinamik/statik pemanduan autonomi, peta ketepatan tinggi, garisan lorong, kemahiran seni bina rangkaian saraf (CNN&GNN&Transformer), dll. Sangat sukar untuk bermula! Ramai peminat berharap untuk memulakan ramalan trajektori secepat mungkin dan mengelakkan perangkap Hari ini saya akan mengambil kira beberapa masalah biasa dan kaedah pembelajaran pengenalan untuk ramalan trajektori! Pengetahuan berkaitan pengenalan 1. Adakah kertas pratonton teratur? A: Tengok survey dulu, hlm

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.

Langkah pemasangan ThinkPHP: Sediakan persekitaran PHP, Komposer dan MySQL. Buat projek menggunakan Komposer. Pasang rangka kerja dan kebergantungan ThinkPHP. Konfigurasikan sambungan pangkalan data. Hasilkan kod aplikasi. Lancarkan aplikasi dan lawati http://localhost:8000.
