Services CakePHP

WBOY
Libérer: 2024-09-10 17:26:04
original
867 Les gens l'ont consulté

Ce chapitre traite des informations sur le processus d'authentification disponible dans CakePHP.

Authentification

L'authentification est le processus d'identification du bon utilisateur. CakePHP prend en charge trois types d'authentification.

  • FormAuthenticate - Il vous permet d'authentifier les utilisateurs en fonction des données POST du formulaire. Il s'agit généralement d'un formulaire de connexion dans lequel les utilisateurs saisissent des informations. Il s'agit de la méthode d'authentification par défaut.

  • BasicAuthenticate - Il vous permet d'authentifier les utilisateurs à l'aide de l'authentification HTTP de base

  • DigestAuthenticate - Il vous permet d'authentifier les utilisateurs à l'aide de l'authentification HTTP Digest.

Exemple d'authentification par formulaire

Apportez des modifications au fichier config/routes.php comme indiqué dans le code suivant.

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();
Copier après la connexion

Modifiez le code du fichier AppController.php comme indiqué dans le programme suivant.

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());
   }
}
Copier après la connexion

Créez le fichier AuthexsController.php dans src/Controller/AuthexsController.php. Copiez le code suivant dans le fichier du contrôleur.

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());
   } 
}
?>
Copier après la connexion

Créez un répertoire Authexs dans src/Template et sous ce répertoire, créez un fichier View appelé login.php. Copiez le code suivant dans ce fichier.

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();
?>
Copier après la connexion

Créez un autre fichier View appelé logout.php. Copiez le code suivant dans ce fichier.

src/Template/Authexs/logout.php

You are successfully logged out.
Copier après la connexion

Créez un autre fichier View appelé index.php. Copiez le code suivant dans ce fichier.

src/Template/Authexs/index.php

You are successfully logged in. 
<?php echo $this->Html->link('logout',[
      "controller" => "Authexs","action" => "logout"
   ]); 
?>
Copier après la connexion

Exécutez l'exemple ci-dessus en visitant l'URL suivante.

http://localhost/cakephp4/auth

Sortie

Comme l'authentification a été mise en œuvre, et une fois que vous essayez de visiter l'URL ci-dessus, vous serez redirigé vers la page de connexion comme indiqué ci-dessous.

Services CakePHP

Après avoir fourni les informations d'identification correctes, vous serez connecté et redirigé vers l'écran comme indiqué ci-dessous.

Services CakePHP

Après avoir cliqué sur le lien déconnexion, vous serez à nouveau redirigé vers l'écran de connexion.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal