Perkhidmatan CakePHP

WBOY
Lepaskan: 2024-09-10 17:26:04
asal
878 orang telah melayarinya

Bab 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();
Salin selepas log masuk

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());
   }
}
Salin selepas log masuk

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());
   } 
}
?>
Salin selepas log masuk

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();
?>
Salin selepas log masuk

Buat Lihat fail lain bernama logout.php. Salin kod berikut dalam fail itu.

src/Template/Authexs/logout.php

You are successfully logged out.
Salin selepas log masuk

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"
   ]); 
?>
Salin selepas log masuk

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.

Perkhidmatan CakePHP

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

Perkhidmatan CakePHP

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!

Label berkaitan:
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