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.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

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)

Sujets chauds

TostayCurrentwithPhpDevelopments andBestPractices, suiventyewnewsources likephp.netandphpweekly, engagewithcommunitiesonforumums et conférences, keeptoolingupdated etgradualadoptnewfeatures, etreadorontruttetoopensourceprojects.

PhpBecamepopularforwebDevelopmentDuetoitSeaseOflearning, Samoussentegration withhtml, widespreadhostingsupport, andalargecosystemysteclustingframeworkslikeLaravelandcmsplateformeslikewordpress.itexcelSinlingFormSubMissions, ManagetingSeSeSessions, interactif, interactif

Tosetherighttimezoneinphp, usedate_default_timezone_set () Fonctionnellestartofyourscriptwithavalididentifiersuchas'america / new_york'.1.usedate_default_timezone_set () beforeanydate / timefunctions.20

TovalidateUserInputinPhp, usebuilt-invalidationfunctions likeFilter_var () etFilter_Input (), appliquerareArexpressionsforcustomFormatsSuchasUserNameSorphonEnombers

ThePhpFunctionSerialize () andUnserialize () sont utilisés pour le stobercomplexdatasterDestoRoSintOsTorasandAbackAgain.1.Serialize () C onvertsDatalikECarraysorObjectSraystringContainingTypeandStructureInformation.2

Vous pouvez intégrer le code PHP dans des fichiers HTML, mais assurez-vous que le fichier a une extension de .php afin que le serveur puisse l'analyser correctement. Utilisez des balises standard pour envelopper le code PHP, insérez le contenu dynamique n'importe où dans HTML. De plus, vous pouvez changer plusieurs fois PHP et HTML dans le même fichier pour réaliser des fonctions dynamiques telles que le rendu conditionnel. Assurez-vous de prêter attention à la configuration du serveur et à l'exactitude de la syntaxe pour éviter les problèmes causés par de courtes étiquettes, des erreurs de devis ou des étiquettes de fin omises.

La clé pour écrire le code PHP propre et facile à maintenir réside dans une dénomination claire, des normes suivantes, une structure raisonnable, une bonne utilisation des commentaires et une testabilité. 1. Utilisez des variables claires, des fonctions et des noms de classe, tels que $ userdata et calculatotalprice (); 2. Suivez le style de code unifié standard PSR-12; 3. Divisez la structure du code en fonction des responsabilités et organisez-la à l'aide de catalogues MVC ou de style Laravel; 4. évitez le code de style nouilles et divisez la logique en petites fonctions avec une seule responsabilité; 5. Ajouter des commentaires aux points clés et écrire des documents d'interface pour clarifier les paramètres, les valeurs de retour et les exceptions; 6. Améliorer la testabilité, adopter l'injection de dépendance, réduire l'état mondial et les méthodes statiques. Ces pratiques améliorent la qualité du code, l'efficacité de la collaboration et la facilité de post-maintenance.

Oui, YouCanrunsqlQueriesUsingPhp, et theprocessInvolvesChoosingAdatabaseextenten, ConnectTotheDatabase, ExecutingQueessaFely, andcosingConnectionSwhendOne.Todothis, FirstChooseBetweenmysqliorpDo, avec unplaying
