Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

L'essentiel de CakePHP

Créer une authentification avec une base de données

Testez gratuitement nos 1334 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Afin de créer une authentification classique, il vous faut une base de données avec une table utilisateur. Puis vous devez créer des différentes actions et vues afin d'autoriser la connexion.
07:15

Transcription

Nous allons donc créer une authentification avec une base de données. Pour commencer, il faut aller dans PhpMyAdmin et créer une table users. Je vais dans SQL. Ici je vais créer une table users, avec un ID qui sera du coup un AutoIncrement, qui sera la clé primaire, un username qui sera un Varchar de 50, un password qui sera un Varchar de 255, un role, puisqu'on pourra avoir le rôle d'Administrateur, et un role avec un peu moins de droits qu'un Administrateur. On a toujours ici le created et la date de modification, qui sont les deux champs de base de CakePhp enfin les trois champs puisqu'il y a l'ID qui est aussi un champ de base de CakePhp. Voila, donc là j'ai bien ma table utilisateur. Ensuite, nous allons aller dans l'AppController. Dans l'AppController ici, nous allons ajouter certains paramètres au LoadComponent. Donc ici, je rajoute le tableau LoginRedirect qui permet de dire où est-ce que l'on doit rediriger lorsque l'on est connecté. Ensuite le LogoutRedirect pour dire où est-ce que l'on doit rediriger lorsque l'on se déconnecte, tout simplement. Ici, j'ai choisi la homepage pour le LogoutRedirect et l'IndexArticles pour le LoginRedirect. Ensuite, on va ajouter une petite fonction qui permet de dire si on est autorisé ou non. Par défaut, l'utilisateur qui aura le rôle Admin aura tous les droits. Du coup, on retourne True, et il aura accès à chacune des actions du site, et par défaut, ça sera False. Par défaut, l'utilisateur ne sera pas autorisé à accéder à une action. Ensuite nous allons créer le UserTable, donc là c'est pareil que pour articles. Il nous faut du coup une table. Là, c'est très simple; ici, j'ai juste mis quelques validators. Le username ne doit pas être vide, le password non plus, le role non plus. Le role, du coup, c'est une liste, ici je n'avais pas encore parlé de ça. Le add vous permet de définir une liste, ici de roles, et en fait le role qui doit forcément correspondre à soit admin, soit author. C'est une obligation. Et sinon, on a le message ici : Merci de rentrer un role valide. J'enregistre, ensuite je fais pareil avec l'entité user. Dans entity, je vais créer une entité user. Donc ici, c'est une entité user. Je dis juste les champs qui sont assignables, ensuite le set password ici, je fais un hash sur le password par défaut. Donc là, ça permet d'avoir une nouvelle instance du DefaultPasswordHasher, et ensuite j'utilise la méthode hash avec le password qui est passé en paramètres ici à la fonction sept. Ensuite, il nous faut créer un controller, un UserController. Je vais coller un certain nombre d'informations et le UserController étant toujours de l'AppController, ici, j'ai donc un beforefilter, donc là, c'est pour autoriser par défaut le logout pour tout le monde. Ensuite j'ai un index, donc ici, ça me permet de lister tous les utilisateurs et j'appelle la fonction paginate, qui me permettra d'avoir une pagination des utilisateurs. Ensuite j'ai le view qui me permettra de voir un utilisateur que j'aurais au préalable choisi de voir. Ensuite le add ici, ça crée une nouvelle entité. Ensuite, je regarde bien que le formulaire est en train d'être posté. Ensuite je vérifie que les données sont bien valides, donc là je vais passer du coup dans le ValidateDefault. En cas de succès, je vais avoir ce message-là qui sera affiché et ensuite je serais redirigé. Ici, ça c'est pour les traductions. Ça, j'en ai pas parlé mais si vous voulez que votre site soit en plusieurs langues, il faut mettre ça, ce qui vous permettra de gérer les traductions par la suite. Et ensuite, en cas d'erreur, il y a ça, donc ça, c'est dans les flash messages, donc ceux qui sont en session. Ensuite vous avez du coup le login, qui sera un formulaire qui permettra de renseigner login et password. Et ici, avec cette fonction-là, ça vous permet de savoir si vous êtes identifié et si c'est le cas, s'il y a bien un utilisateur, alors ici, on set dans this--Auth l'utilisateur courant et ensuite on redirige vers l'URL qu'on a défini dans le AppController.php. Et ensuite on a un message d'erreur, auquel cas il y a un problème. En cas de redirection, on fait un logout et donc on enlève la session de l'utilisateur et on redirige vers l'URL qui a été définie dans AppController.php Ensuite, il faut qu'on ajoute des templates. Ici, je vais ajouter un dossier users. Je crée un nouveau fichier que j'appelle add.ctp. Ici, c'est juste un formulaire, je crée le formulaire. En entrée, c'est un utilisateur que je passe. Ensuite, j'ai deux inputs et j'ai aussi une liste déroulante avec deux rôles, admin et author, et ensuite j'ai le bouton ajouter, ainsi que la fin de mon formulaire. Ensuite, j'ai le login, donc pour mon formulaire de login. Donc voilà, ici, c'est un formulaire classique. Maintenant, pour éviter les erreurs, il va falloir créer un fichier index.ctp. Ici, je ne mets rien, j'enregistre. Donc maintenant vous pouvez aller sur users/add pour vous créer un utilisateur. Je vais me créer un utilisateur, je lui mets le rôle admin et je fais ajouter. Donc là j'ai bien un utilisateur qui a été ajouté et si je regarde ici, j'ai bien mon utilisateur et le password est bien hashé et ensuite j'ai bien le rôle admin. Maintenant, si je veux me connecter, je suis connecté par défaut. Et si je vais sur users ici, si je vais dans session, je vois que dans Auth, j'ai bien un utilisateur Id1 et j'ai mon username et mon rôle. Donc là, nous venons de faire le formulaire de création de compte et d'authentification.

L'essentiel de CakePHP

Développez des applications web évolutives avec CakePHP, du simple blog au site e-commerce à fort trafic. Installez et configurez le framework, maîtrisez le routing, etc.

3h39 (45 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
CakePHP CakePHP 3
Spécial abonnés
Date de parution :22 nov. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !