Services CakePHP
Sep 10, 2024 pm 05:26 PMCe 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();
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()); } }
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()); } } ?>
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(); ?>
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.
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" ]); ?>
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.

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

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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La version complète de Mantianxing Comic est https://www.mantianxingmh.com. La plate-forme couvre une variété de thèmes tels que la passion, l'amour, le suspense, la science-fiction, etc., avec des ressources riches et des mises à jour en temps opportun et soutient la récupération classifiée; Il offre une qualité d'image à haute définition, des modes de virage à plusieurs pages, un ajustement de fond et une luminosité personnalisés, et dispose d'un mode de protection oculaire pour optimiser l'expérience de lecture; Les utilisateurs peuvent créer des étagères, enregistrer des enregistrements de lecture, télécharger hors ligne et réaliser des progrès de synchronisation croisée.

Utilisez la fonction Unlink () pour supprimer des fichiers dans PHP. Vous devez vous assurer que le chemin du fichier est correct et que le serveur a des autorisations d'écriture. Avant la suppression, vous devez vérifier que le fichier existe et empêcher le chemin de manipuler de manière malveillante.

OopinphporganizescodeNororeusableclasses et objet.1.classesdefineproperties et méthodes, InstanciatedVia $ this.2.Constructors (__ Construct) initializeObjectProperties.3. accessmodificateurs (public, privé, protégé)

Utilisez mysqli_insert_id () (style de procédure), $ mysqli-> insert_id (style objet), ou $ pDo-> lastInsertid () (PDO) pour obtenir le dernier ID inséré et doit être appelé immédiatement dans la même connexion pour assurer une précision.

FinalClasses etthethodsInphPPreventInheritanceAndOverridToprotectCriticalCode.2.AfinalClassCannotBeExtend, AssuranceBehaviorremainSunchanged.3.AfinalMethCannotBeOverridden, PréservingConsistentImPlementationAcrosssubclasses.4

Utilisez des devis simples ou échappés doubles pour sortir HTML en php. Il est recommandé d'envelopper des cha?nes avec des devis simples pour éviter les conflits de citation d'attribut. Le contenu dynamique peut être généré en combinaison avec l'épissage variable ou la syntaxe Heredoc.

AsingletOnclassInphpenSuresNlyOneinstancexistsyusingaprivateConstructor, empêchant la pertinence et le service de service, et la fourniture de la mise en ?uvre de l'accès à la propriété.

Utilisez $ _GetToAccessUrlQueryStringVariablesInphp, Suchasname = Johnandage = 30Fromhttps: //example.com/search.php? Name = John & Age = 30; AlwaysValidateandSanitizeInputsusingFilter_Input () etavoidSensivedataUrlSDueToExpossposorisersks.
