Keizinan CakePHP

WBOY
Lepaskan: 2024-08-29 12:58:47
asal
856 orang telah melayarinya

Artikel berikut menyediakan garis besar untuk Kebenaran CakePHP. CakePHP ialah alat sumber terbuka yang menyediakan komponen Auth dalam cara yang boleh dipasang untuk melaksanakan tugas kami. Komponen Auth digunakan untuk menyediakan objek pengesahan dan kebenaran. Dalam erti kata lain, kita boleh mengatakan bahawa ia adalah gabungan kedua-duanya digunakan untuk menentukan kebenaran dan pengesahan pengguna mengikut keperluan kami. Pengesahan bermaksud menentukan kelayakan pengguna dan mengesahkan kelayakan tersebut, seperti nama pengguna dan kata laluan. Sebaliknya, kebenaran bermaksud pengesahan pengguna berdasarkan bukti kelayakan pengguna dan maklumat lain yang diberikan oleh pengguna.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Apakah Keizinan CakePHP?

Seperti yang anda mungkin tahu, dua modul baharu "setakat ini" (tidak setakat ini) ditambah untuk mengurus idea Pengesahan dan Kebenaran dalam aplikasi CakePHP anda. Sepanjang jangka panjang, pengesahan dan kebenaran diawasi dalam lapisan Pengawal menggunakan AuthComponent. Kedua-dua perkara ini biasanya mengisi kerumitan apabila tugas anda berkembang, menjadikan AuthComponent sebagai kelas yang membingungkan yang menguruskan banyak elemen serentak.

Salah satu pemikiran pertama di sebalik modul baharu ini adalah untuk memfaktorkan semula AuthComponent dan membuat lapisan eksplisit untuk ditangani:

Pengesahan: Siapa anda?

Kelulusan: Adakah anda akan mengatakan anda dibenarkan?

Kami akan menyiasat idea Keizinan dalam artikel ini menggunakan model tertentu: Kami harus membayangkan beberapa aplikasi permainan di mana Pengguna akan mengawasi Kejohanan. Pengguna akan mahu membuat Kejohanan baharu dan menyertai Kejohanan melalui Keahlian Kejohanan dengan pelbagai gabungan. Pelanggan tidak akan mendekati Kejohanan kecuali jika mereka dialu-alukan untuk bermain. Pemain Kejohanan boleh mengalu-alukan Pengguna yang berbeza untuk bermain.

Bagaimana untuk Semak Keizinan CakePHP?

Sekarang mari lihat bagaimana kita boleh menyemak kebenaran CakePHP seperti berikut:

Selepas melaksanakan Perisian Tengah Kebenaran pada aplikasi kami masing-masing, kami boleh menyemak kebenaran. Ini kerana perisian tengah membungkus identiti setiap permintaan.

Sekarang mari kita lihat bagaimana kita boleh menyemak kebenaran dengan sumber tunggal seperti berikut:

Mereka boleh strategi memperkasakan anda sebenarnya untuk melihat kelulusan pada aset bersendirian. Biasanya ini adalah bahan ORM atau objek kawasan aplikasi.

Dasar anda memberi rasional untuk menyelesaikan pilihan kelulusan:

Kod:

// Fetch identity from each and every request
$user = $this->request->getAttribute('identity');
// Checking authorization on $sample
if ($user->can('delete', $sample)) {
// Do delete operation
}
Salin selepas log masuk

Sekarang mari kita lihat bagaimana kita boleh menggunakan syarat skop seperti berikut:

Setiap kali anda mahu semakan kelulusan untuk pelbagai item seperti pertanyaan bernombor, anda perlu mendapatkan rekod yang pelanggan semasa mendekatinya. Modul ini melaksanakan idea ini sebagai ‘skop.’

Pendekatan skop membenarkan anda untuk 'skop' pertanyaan atau set keputusan dan mengembalikan rundown atau objek soalan yang dimuat semula:

Kod:

// Fetch the identity from each and every request
$specified user = $this->request->getAttribute('identity');
$Sql_query = $specified fuser->ApplyScopeTo('index', $Sql_query);
Salin selepas log masuk

Komponen Kebenaran boleh digunakan dalam aktiviti pengawal selia untuk melancarkan kelulusan, yang menimbulkan pengecualian kekecewaan.

Buat Keizinan CakePHP

Sekarang mari kita lihat bagaimana kita boleh membuat kebenaran dalam CakePHP dengan contoh seperti berikut:

Pertama, kita perlu memahami parameter yang perlu kita pertimbangkan seperti berikut:

Pengesahan ialah cara paling biasa untuk membezakan pelanggan yang betul. CakePHP mengekalkan tiga jenis pengesahan.

  • FormAuthenticate: Ia membenarkan anda mengesahkan pelanggan diberi maklumat POST berstruktur. Biasanya, ini ialah struktur log masuk yang pelanggan masukkan data. Ini ialah strategi pengesahan lalai.
  • BasicAuthenticate: Ia membenarkan anda mengesahkan pelanggan menggunakan pengesahan HTTP Asas.
  • DigestAuthenticate: Ia membenarkan anda mengesahkan pelanggan menggunakan pengesahan HTTP Digest.

Pertama, kita perlu mengkonfigurasi fail route.php seperti berikut:

Kod:

<?php
use Cake\Core\Plugin;
use Cake\Routing\RouteBuilder;
use Cake\Routing\Router;
Router::defaultRouteClass('DRoute');
Router::scope('/', function (RouteBuilder $routes) {
$routes->connect('/auth',['controller'=>'Auth','action'=>'index']);
$routes->connect('/login',['controller'=>'Auth','action'=>'login']);
$routes->connect('/logout',['controller'=>'Auth','action'=>'logout']);
$routes->fallbacks('DRoute');
});
Plugin::routes();
Salin selepas log masuk

Selepas itu, kita perlu mencipta fail controller.php dan tulis kod berikut seperti berikut:

Kod:

<?php
namespace App\Controller;
use Cake\Controller\Controller;
use Cake\Event\Event;
use Cake\Controller\Component\AuthComponent;
class DemoController extends Controller {
public function initialize() {
parent::initialize();
$this->loadComponent('RequestHandler');
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'userid',
'password' => 'userpass'
]
]
],
'loginAction' => [
'controller' => 'Authexs',
'action' => 'login'
],
'loginRedirect' => [
'controller' => 'Authexs',
'action' => 'index'
],
'logoutRedirect' => [
'controller' => 'Authexs',
'action' => 'login'
]
]);
}
public function BFilter(Event $eventt) {
$this->Auth->allow(['index','view']);
$this->set('loggedIn', $this->Auth->specified user());
}
}
Salin selepas log masuk

Sekarang buat fail authcontrollr.php dan tulis kod berikut seperti berikut:

Kod:

<?php
namespace App\Controller;
use App\Controller\AppController;
use Cake\ORM\TableRegistry;
use Cake\Datasource\ConnectionManager;
use Cake\Event\Eventt;
use Cake\Auth\DefaultPasswordHasher;
class AuthController extends AppController {
var $component = array('Auth');
public function index(){
}
public function login(){
if($this->request->is('post')) {
$specified_user = $this->Auth->identify();
if($user){
$this->Auth->setUser($specified_user);
return $this->redirect($this->Auth->redirectUrl());
} else
$this->Flash->errormsg('Entered username and password is wrong');
}
}
public function logout(){
return $this->redirect($this->Auth->logout());
}
}
Salin selepas log masuk

Akhir sekali, kita perlu mencipta templat log masuk untuk melihat keputusan seperti berikut.

<?php
echo $this->Form->create();
echo $this->Form->control('UserID');
echo $this->Form->control('Userpass');
echo $this->Form->button('Submit');
echo $this->Form->end();
?>
Salin selepas log masuk

Penjelasan:

Di sini kami mencipta templat untuk melihat hasilnya. Selepas melaksanakan kod di atas, kita akan mendapat skrin berikut.

Keizinan CakePHP

Di sini kami boleh menyediakan bukti kelayakan pengguna untuk log masuk.

Kita mesti mencipta fail PHP lain untuk log keluar dan tulis kod berikut.

Kod:

<?php
echo $this->Html->link('logout',[
"controller" => "Auth","action" => "logout"
]);
?>
Salin selepas log masuk

After executing the above code, we will get the following screen.

Keizinan CakePHP

CakePHP Authorization Installing

Now let’s see how we can install authorization in CakePHP as follows:

First, we need to load the plugin by using the following statement as follows:

Code:

$this-> addPlugin('Authorization');
Salin selepas log masuk

After that, we need to enable all authorization plugins by importing the following class as follows:

Code:

use Authorization\AuthorizationService;
use Authorization\AuthorizationServiceInterface;
use Authorization\AuthorizationServiceProviderInterface;
use Authorization\Middleware\AuthorizationMiddleware;
use Authorization\Policy\OrmResolver;
Salin selepas log masuk

After creating a policy as per our requirement, we also need to fix add and edit action as per our requirement. The requirement mentioned above we can achieve through coding.

Conclusion

From the above article, we have taken in the essential idea of the CakePHP authorization and see the representation and example of the CakePHP authorization. Finally, we saw how and when we use the CakePHP authorization from this article.

Atas ialah kandungan terperinci Keizinan CakePHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber: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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan