Archives de
Tag: user

Symfony make:user, auth, registration-form et reset-password

Symfony make:user, auth, registration-form et reset-password

Afin de mettre en place une authentification dans notre application Symfony nous allons utiliser le makerbundle.

Pour aller vite voici la liste des commandes utilisées au long de cet article. Vous pouvez les exécuter et vous laissez guider :

composer require symfonycasts/reset-password-bundle
php bin/console make:user
php bin/console make:auth
php bin/console make:registration-form
php bin/console make:reset-password

Nous commençons par ajouter symfocasts/reset-password-bundle dont nous aurons besoin plus tard.

Nous exécutons php bin/console make:user et suivons le guide:

Nous nous retrouvons donc avec notre entité User et un fichier security.yml mis a jour. Étape suivante, la page de connexion. Pour cela nous exécutons: php bin/console make:auth

Encore une fois le fichier security.yml est mis a jour. Nous avons cette fois un contrecoller et un template, c’est basique mais fonctionnel, c’est maintenant un bout de code de votre projet, a vous le faire vivre et de le modifier.

Avant d’aller plus loin ouvrez le fichier LoginFormAuthenticator direction la méthode onAuthenticationSuccess puis mettez a jour la redirection par défaut lors d’une connexion:

public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
    {
        if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
            return new RedirectResponse($targetPath);
        }

        // For example : return new RedirectResponse($this->urlGenerator->generate('some_route'));
        throw new \Exception('TODO: provide a valid redirect inside '.__FILE__);
    }

Il est bien beau de pouvoir se connecter encore faudrat-il pouvoir s’enregistrer. Nous exécutons donc php bin/console make:registration-form

Cette fois nous avons tout ce qu’il faut pour s’enregistrer:

Dernière étape, le récupération de mots de passe, encore une fois nous exécutons php bin/console make:reset-password

Et voila, grâce a ces 4 commandes vous avez:

  • une entité User
  • une page de connexion
  • une page d’enregistrement
  • une page de récupération de mot de passe

Tous les fichiers générés sont les vôtre et peuvent/doivent être modifiés en fonction de vos besoins.