Ceci est une ancienne révision du document !
Authentification
Prérequis
- La sécurité doit etre installée :
symfony composer req security
Utilisateurs
Création
Création de l'entité USER :
symfony console make:user
Puis pour créer les tables dans la base de données :
symfony console make:migration
symfony console doctrine:migrations:migrate
Formulaire d'enregistrement de nouveaux utilisateurs
Pour créer ce formulaire :
symfony console make:registration-form
Cela nous créé plusieurs fichiers :
- Un contrôleur :
src\Controller\RegistrationController.php
- Un Formulaire :
src\Form\RegistrationFormType.php
- Un modèle Twig :
templates\registration\register.html.twig
Il se peux qu'une erreur de validation se produise
data.password This value should not be null.
Voir en bas de la page pour en savoir plus
Protéger un chemin
Pour interdire l’accès a un chemin sauf au utilisateurs authentifié, on modifie le fichier config\packages\security.yaml
On décommente la ligne - { path: ^/admin, roles: ROLE_ADMIN }
- config\packages\security.yaml
access_control: - { path: ^/admin, roles: ROLE_ADMIN } #<- a décommenter # - { path: ^/profile, roles: ROLE_USER }
Erreurs
Formulaire de d'enregistrement
Erreur data.password This value should not be null.
Il faut ajouter la ligne →add('password',HiddenType::class,['attr'⇒['value'⇒'dummy']])
dans le fichier \Form\RegistrationFormType.php
- src\Form\RegistrationFormType.php
public function buildForm(FormBuilderInterface $builder, array $options): void { $builder ->add('email') .... ->add('password',HiddenType::class,['attr'=>['value'=>'dummy']]) #<--- AJOUTER CETTE LIGNE ->add('plainPassword', PasswordType::class, [ ... ]), ], ]) ; }
Sources & Ressources
Vous pourriez laisser un commentaire si vous étiez connecté.