symfony composer req security
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
Pour créer ce formulaire :
symfony console make:registration-form
Cela nous créé plusieurs fichiers :
src\Controller\RegistrationController.php
src\Form\RegistrationFormType.php
templates\registration\register.html.twig
data.password This value should not be null.
Voir en bas de la page pour en savoir plus
symfony console make:auth
Une fois que les fichiers sont générés ou modifiés il faut :
App\Security\AppAuthenticator
App\Security\AppAuthenticator::onAuthenticationSuccess()
templates/security/login.html.twig
.
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 }
access_control: - { path: ^/admin, roles: ROLE_ADMIN } #<- a décommenter # - { path: ^/profile, roles: ROLE_USER }
On peut se connecter directement via un lien que l'on a reçu par email, par exemple.
Voir la vidéo : https://www.youtube.com/watch?v=Id5y2aRUZok
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
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, [ ... ]), ], ]) ; }