Symfony6 et Symfony7 Techwall #57 Sécurité, Créer formulaire d'authentification, form authenticator

Поделиться
HTML-код
  • Опубликовано: 5 окт 2024
  • Symfony6 et Symfony 7Techwall #57 Sécurité, Créer un formulaire d'authentification via un form authenticator
    github.com/aym...
    Comme décrite dans la documentation, l’authentification dans Symfony ressemble à de « la magie ».
    En effet, au lieu d’aller construire une route et un contrôleur afin d’effectuer le traitement, vous devez simplement activer un « authentication provider ».
    « L’authentication provider » est du code qui s’exécute automatiquement avant chaque appel d’un contrôleur.
    Symfony possède un ensemble d’ « authentication provider » prêt à l’emploi. Vous trouverez leur description dans la documentation : symfony.com/do...
    Dans la documentation, il est conseillé de passer par les « Guard Authenticator » qui permettent un contrôle total sur toutes les parties de l’authentification.
    Un « Guard authenticator » est une classe qui vous permet un control complet sur le processus d’authentification.
    Cette classe devra ou implémenter l’interface AuthentiatorInterface ou étendre la classe abstraire associé au besoin (AbstractFormLoginAuthenticator en cas de formulaire d’authentification ou AbstractGuardAuthenticator en cas d’api)
    La commande make:auth permet de générer automatiquement cette classe.
    Une fois lancée, cette commande vous demande si vous voulez créer un « empty authenticator » ou un « login form authenticator ».
    A partir de la version 5.3, vous devez implémenter uniquement les méthodes authenticate et la méthode onAuthenticationSuccess.
    Il y a aussi des méthodes optionnelles que vous pouvez surcharger :
    supports
    onAuthenticationFailure
    start
    Symfony utilises à partir de la version 5,3 un nouveau Authenticator based Security
    Pour la gestion des utilisateurs elle utilises Passport
    Un site est généralement décomposé en deux parties :
    Partie public : accessible à tous le monde
    Partie privée : accessible à des utilisateurs particuliers.
    Au sein même de la partie privée, certaines ressources sont spécifiques à des rôles ou des utilisateurs particuliers.
    Nous identifions donc deux niveaux de sécurité :
    L'authentification est le processus permettant d’authentifier un utilisateur.
    Deux réponses possibles
    Non authentifié : Anonyme.
    Authentifié : membre
    Le Bundle qui gère la sécurité dans Symfony s’appelle SecurityBundle.
    Si vous ne l’avez pas dans votre application, installer le via la commande
    composer require security
    L’ensemble du système de sécurité est basé sur la classe User qui représente l’utilisateur de votre application.
    Afin de créer la classe User, utiliser la commande :
    symfony console make:user
    Si vous n’avez pas le MakerBundle, installer le.
    Cette outils vous posera un ensemble de questions, selon votre besoin répondez y et il fera tout le reste.

Комментарии • 13

  • @Ysekai
    @Ysekai Год назад +3

    Remarque : pour l'email et le password c'est dans la prochaine vidéo (pour ceux qui cherche dans la vidéo)

    • @ludovicdelplanque3134
      @ludovicdelplanque3134 Год назад +3

      Thanks mdrr, j'étais là en mode (Il se passe quoi, j'ai loupé une étape)

  • @pasc2421
    @pasc2421 Год назад

    Merci.

  • @yannickeccli5665
    @yannickeccli5665 4 месяца назад

    Hello, merci pour ce tuto qui est très complet. J'ai une question au sujet des formulaire de login et registration. Peut-on définir une template twig intégrant les deux formulaires afin d'utiliser un code CSS permettant de switcher de l'un à l'autre sur une même page ? Merci

    • @TechWall
      @TechWall  4 месяца назад +1

      Bonjour. Oui il faut que la route principale redirige vers la twig qui affiche les deux form et que pour chaque form il y ai une route spécifique pour le traiter

    • @yannickeccli5665
      @yannickeccli5665 4 месяца назад

      @@TechWall Merci pour cette piste. Vidéos géniale !

    • @TechWall
      @TechWall  3 месяца назад

      @@yannickeccli5665 Avec grand plaisir :)

  • @LinuxForLife
    @LinuxForLife 8 месяцев назад

    Le cours #57 doit être vu avant celui-ci: #56. Erreur dans la numérotation des cours, je présume ...
    Bon cours néanmoins !

    • @TechWall
      @TechWall  8 месяцев назад +1

      Effectivement, vous avez raison, c'est corrigé.

  • @skygrace8459
    @skygrace8459 Год назад

    Salut tech wall, Merci pour le tuto; est-ce possible de s'authentifier soit avec le username et/ou le mail en meme temps? (username ou email) donc si l'utilisateur tape son username et le mot de passe ou l'email et le mot de passe pour se connecter?

  • @mocheford
    @mocheford 2 года назад +1

    Bonjour ! Merci pour cette nouvelle vidéo. Je me pose une question : Sur toutes mes applications l'utilisateur doit exister dans la table user mais l'identification en elle-même se passe au niveau d'un annuaire LDAP (qui lui stocke le mot de passe ). Comment pensez-vous que je devrais procéder ? Normalement je ferais un formulaire, une vérification si l'utilisateur existe dans la table user puis si oui, vérification du mot de passe sur ldap et enfin, redirection. Mais en symfony ?

    • @TechWall
      @TechWall  2 года назад

      Bonjour. N'ayant pas travailer sur ce cas d'utilisation, je ne peux pas donner de réponse précise. Par contre il y a la documentation officielle qui traite ce cas : symfony.com/doc/current/security/ldap.html