Perkhidmatan CakePHP
Sep 10, 2024 pm 05:26 PMBab ini membincangkan maklumat tentang proses pengesahan yang tersedia dalam CakePHP.
Pengesahan
Pengesahan ialah proses mengenal pasti pengguna yang betul. CakePHP menyokong tiga jenis pengesahan.
FormAuthenticate ? Ia membolehkan anda untuk mengesahkan pengguna berdasarkan data POST borang. Biasanya, ini adalah borang log masuk yang pengguna masukkan maklumat. Ini ialah kaedah pengesahan lalai.
BasicAuthenticate ? Ia membolehkan anda mengesahkan pengguna menggunakan pengesahan HTTP Asas
DigestAuthenticate ? Ia membolehkan anda mengesahkan pengguna menggunakan pengesahan HTTP Digest.
Contoh untuk Pengesahan Borang
Buat perubahan dalam fail config/routes.php seperti yang ditunjukkan dalam kod berikut.
config/routes.php
<?php use Cake\Core\Plugin; use Cake\Routing\RouteBuilder; use Cake\Routing\Router; Router::defaultRouteClass('DashedRoute'); Router::scope('/', function (RouteBuilder $routes) { $routes->connect('/auth',['controller'=>'Authexs','action'=>'index']); $routes->connect('/login',['controller'=>'Authexs','action'=>'login']); $routes->connect('/logout',['controller'=>'Authexs','action'=>'logout']); $routes->fallbacks('DashedRoute'); }); Plugin::routes();
Tukar kod fail AppController.php seperti yang ditunjukkan dalam program berikut.
src/Controller/AppController.php
<?php namespace App\Controller; use Cake\Controller\Controller; use Cake\Event\Event; use Cake\Controller\Component\AuthComponent; class AppController extends Controller { public function initialize() { parent::initialize(); $this->loadComponent('RequestHandler'); $this->loadComponent('Flash'); $this->loadComponent('Auth', [ 'authenticate' => [ 'Form' => [ 'fields' => [ 'username' => 'username', 'password' => 'password' ] ] ], 'loginAction' => [ 'controller' => 'Authexs', 'action' => 'login' ], 'loginRedirect' => [ 'controller' => 'Authexs', 'action' => 'index' ], 'logoutRedirect' => [ 'controller' => 'Authexs', 'action' => 'login' ] ]); } public function beforeFilter(Event $event) { $this->Auth->allow(['index','view']); $this->set('loggedIn', $this->Auth->user()); } }
Buat fail AuthexsController.php di src/Controller/AuthexsController.php. Salin kod berikut dalam fail pengawal.
src/Controller/AuthexsController.php
<?php namespace App\Controller; use App\Controller\AppController; use Cake\ORM\TableRegistry; use Cake\Datasource\ConnectionManager; use Cake\Event\Event; use Cake\Auth\DefaultPasswordHasher; class AuthexsController extends AppController { var $components = array('Auth'); public function index(){ } public function login(){ if($this->request->is('post')) { $user = $this->Auth->identify(); if($user){ $this->Auth->setUser($user); return $this->redirect($this->Auth->redirectUrl()); } else $this->Flash->error('Your username or password is incorrect.'); } } public function logout(){ return $this->redirect($this->Auth->logout()); } } ?>
Buat direktori Authexs di src/Template dan di bawah direktori itu cipta fail View yang dipanggil login.php. Salin kod berikut dalam fail itu.
src/Template/Authexs/login.php
<?php echo $this->Form->create(); echo $this->Form->control('username'); echo $this->Form->control('password'); echo $this->Form->button('Submit'); echo $this->Form->end(); ?>
Buat Lihat fail lain bernama logout.php. Salin kod berikut dalam fail itu.
src/Template/Authexs/logout.php
You are successfully logged out.
Buat Lihat fail lain bernama index.php. Salin kod berikut dalam fail itu.
src/Template/Authexs/index.php
You are successfully logged in. <?php echo $this->Html->link('logout',[ "controller" => "Authexs","action" => "logout" ]); ?>
Laksanakan contoh di atas dengan melawati URL berikut.
http://localhost/cakephp4/auth
Output
Memandangkan pengesahan telah dilaksanakan, dan sebaik sahaja anda cuba melawati URL di atas, anda akan dialihkan ke halaman log masuk seperti yang ditunjukkan di bawah.

Selepas memberikan bukti kelayakan yang betul, anda akan dilog masuk dan diubah hala ke skrin seperti yang ditunjukkan di bawah.

Selepas mengklik pada pautan log keluar, anda akan diubah hala ke skrin log masuk sekali lagi.
Atas ialah kandungan terperinci Perkhidmatan CakePHP. 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)

Topik panas





Dalam JavaScript, anda perlu menggunakan fungsi tersuai untuk menentukan sama ada dua array adalah sama, kerana tidak ada kaedah terbina dalam. 1) Pelaksanaan asas adalah untuk membandingkan panjang dan elemen, tetapi tidak dapat memproses objek dan tatasusunan. 2) Perbandingan kedalaman rekursif boleh mengendalikan struktur bersarang, tetapi memerlukan rawatan khas NAN. 3) Jenis khas seperti fungsi dan tarikh perlu dipertimbangkan, dan pengoptimuman dan ujian selanjutnya diperlukan.

Pengesahan nombor keselamatan sosial dilaksanakan dalam PHP melalui ekspresi biasa dan logik mudah. 1) Gunakan ungkapan biasa untuk membersihkan input dan keluarkan aksara bukan angka. 2) Periksa sama ada panjang rentetan adalah 18 bit. 3) Kirakan dan sahkan bit semak untuk memastikan ia sepadan dengan bit terakhir input.

Kaedah untuk mengendalikan dengan betul ini menunjuk dalam penutupan JavaScript termasuk: 1. Gunakan fungsi anak panah, 2. Gunakan kaedah mengikat, 3. Gunakan pembolehubah untuk menyimpan ini. Kaedah ini memastikan bahawa fungsi intrinsik ini betul menunjuk kepada konteks fungsi luaran.

Menggunakan JavaScript untuk melaksanakan penyulitan data boleh menggunakan perpustakaan Crypto-JS. 1. Pasang dan memperkenalkan perpustakaan Crypto-JS. 2. Gunakan algoritma AES untuk penyulitan dan penyahsulitan untuk memastikan kunci yang sama digunakan. 3. Perhatikan penyimpanan dan penghantaran kunci yang selamat. Adalah disyorkan untuk menggunakan mod CBC dan pembolehubah persekitaran untuk menyimpan kekunci. 4. Pertimbangkan menggunakan pekerja web apabila anda memerlukan prestasi tinggi. 5. Apabila memproses aksara bukan ASCII, anda perlu menentukan kaedah pengekodan.

Dalam PHP, pembina ditakrifkan oleh kaedah Magic \ _ _ _. 1) Tentukan kaedah membina \ _ \ _ di dalam kelas, yang akan dipanggil secara automatik apabila objek itu dimanfaatkan dan digunakan untuk memulakan sifat objek. 2) Pembina boleh menerima sebilangan parameter dan fleksibel memulakan objek. 3) Apabila menentukan pembina dalam subkelas, anda perlu memanggil ibu bapa :: \ _ \ _ membina () untuk memastikan bahawa pembina kelas induk melaksanakan. 4) Melalui parameter pilihan dan penghakiman, pembina boleh mensimulasikan kesan beban. 5) Pembina harus ringkas dan hanya permulaan yang perlu dilakukan untuk mengelakkan logik kompleks atau operasi I/O.

Langkah -langkah untuk menggunakan laman web Joomla di PHPStudy termasuk: 1) Konfigurasi PHPStudy, pastikan perkhidmatan Apache dan MySQL dijalankan dan periksa keserasian versi PHP; 2) Muat turun dan Decompress Laman Web PHPStudy dari laman web rasmi Joomla ke direktori root phpstudy, dan kemudian lengkapkan pemasangan melalui penyemak imbas mengikut wizard pemasangan; 3) Buat konfigurasi asas, seperti menetapkan nama laman web dan menambah kandungan.

Manfaat menggunakan suntikan ketergantungan (DI) dalam PHP termasuk: 1. Decoupling, menjadikan kod lebih modular; 2. Meningkatkan kesesuaian dan mudah menggunakan ejekan atau stub; 3. Meningkatkan fleksibiliti dan memudahkan penggunaan semula kebergantungan; 4. Meningkatkan kebolehgunaan semula, dan kelas boleh digunakan dalam persekitaran yang berbeza. Dengan melewati kebergantungan secara luaran ke objek, DI menjadikan kod lebih mudah untuk mengekalkan dan mengembangkan.

SendingMailSwithPhpissTraightForwardusingTheMemail () functionOrmoreadVancedLibrariesLikePhpmailer.1) useMail () forbasiceMails, menetapkanRecipients, subjek, mesej, andheaders.2)
