Symfony 4 - Créer un blog pas à pas - L'authentification des utilisateurs

5 août 2019 - : MVC Tutoriel Symfony - : 6 commentaires - Tutoriel Framework MVC Utilisateurs Symfony

Visualisez les fichiers de cette série sur GitHub

Dans les articles précédents nous avons créé les entités relatives aux articles, aux commentaires, aux catégories et aux mots-clés.

Il nous manque l'entité correspondant à la table users, qui va servir à l'authentification.

Cette entité sera créée au moyen d'une série de commandes spécifiques qui permettent de générer tous les éléments nécessaires à l'authentification des utilisateurs.

Création de l'entité "Users"

Nous allons tout d'abord créer l'entité "Users" mais en utilisant la commande suivante

php bin/console make:user

Cette commante va créer la classe de sécurité utilisateurs.

Nous allons la nommer "Users", stocker les informations en base de données, utiliser l'e-mail comme identifiant et chiffre le mot de passe en répondant aux questions comme indiqué ci-dessous.

Cette entité peut ensuite être modifiée en utilisant la commande

php bin/console make:entity

Création de l'authentification

Afin d'authentifier les utilisateurs, nous auront besoin d'un formulaire de connexion. Pour créer ce formulaire et toute la logique d'authentification, nous utiliserons la commande

php bin/console make:auth

Cette commande vous demandera si vous souhaitez créer un fichier vide ou toute la logique du formulaire de connexion. Nous allons opter pour cette option et répondre aux questions comme ci-dessous.

Nous pouvons maintenant nous connecter, mais malheureusement nous ne pouvons pas nous inscrire.

Création de l'inscription

Une 3ème commande nous permet de créer le formulaire d'inscription, qui sera succinct mais fonctionnel. Il pourra être personnalisé ultérieurement. La commande est la suivante

php bin/console make:registration-form

Lors de ce processus, il nous est demandé si nous souhaitons définir un champ "unique" lors de l'inscription. C'est fortement conseillé.

Il est également demandé si nous souhaitons connecter l'utilisateur après son inscription, c'est une bonne pratique.

Voilà, l'authentification des utilisateurs et leur inscription est fonctionnelle.

Obtenir de l'aide

Pour obtenir de l'aide, vous pouvez accéder au serveur Discord pour une entraide par chat

Visualisez les fichiers de cette série sur GitHub

Partager

Partager sur Facebook Partager sur Twitter Partager sur LinkedIn

Commentaires

Ecrire un commentaire

Feilong a écrit le 25 juin 2020 à 00:41

Merci pour tous ces tutos!

J'ai comme ChrisL

Choose a name for the controller class (e.g. SecurityController)

j'avais ceci en plus :

Enter the User class that you want to authenticate (e.g. App\Entity\User) []:

 Je rentre User (car j'ai bien une class User dans mon dossier Entity)

et j'ai un message d'erreur:

 [ERROR] Class "User" doesn't exist; please enter an existing full class name.

 Je suis novice mais j'ai déjà fait 2-3 formulaire d'enregistrement sans soucis. J'ai l'impression que ça pose probleme depuis que

"name": "doctrine/doctrine-migrations-bundle",

soit passé de la version : "2.1.2" à la version "3.0.1"!

je suis sur PHP "7.2.5" et Symfony 5.1.2

si quelqu'un aurait une solution ou même une piste...

merci d'avance.

Répondre

Syrius a écrit le 3 juin 2020 à 23:26

Bonjour,

Avant toutes chose, bravo pour ce que vous faites vous m'avez reconcilier avec le MVC :)

J'utilise la version 5 de symphony et à l'étape de la création de l'authentification : php bin/console make:auth

Il ne fais que la création du fichier: created: src/Security/UsersAuthenticator.php

et la mise a jour: updated: config/packages/security.yaml

mais pas de: src/Controller/SecurityController.php ni meme de: templates/security/login.html.twig

Es ce due au fait de la version ? Si oui faut-il rentrer une autre ligne de commandes ?

Merci d'avance pour votre retour.

Cordialement,

Répondre

Nouvelle-Techno.fr a répondu le 5 juin 2020 à 09:58

Bonjour,

En version 5 l'assistant est identique. Il faut commencer par le make:user puis le make:auth en précisant bien l'option 1.

Répondre

coolpacha a écrit le 29 novembre 2019 à 23:37

salut svp je trouve pas la suite de tuto

Répondre

ChrisL a écrit le 17 novembre 2019 à 14:30

Super tuto !
j'ai vu sur mon autre pc de dev qu'après le :

Choose a name for the controller class (e.g. SecurityController)

j'avais ceci en plus :

 

Enter the User class that you want to authenticate (e.g. App\Entity\User) []:

 

Bonne continuation

Répondre

Ecrire un commentaire