Partage
  • Partager sur Facebook
  • Partager sur Twitter

Symfony 5 : Authentification facultative

Authentifier au maximum possible

Sujet résolu
    26 novembre 2020 à 0:34:49

    Bonjour,

    Je veux faire une page avec une authentification facultative. Si je suis connecté j'affiche un bouton de déconnexion et si je ne suis pas connecté j'affiche un bouton de connexion.

    Si je rend ma page anonymous dans le firewall, la page est accessibles aux utilisateurs déconnectés mais les utilisateurs connectés ne seront pas considérés comme connecté et donc ils n'auront pas accès au bouton de déconnexion.

    Est ce que quelqu'un sait comment authentifier un utilisateur au maximum possible ?

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      26 novembre 2020 à 10:34:53

      Fais voir la configuration des firewalls ? Si une méthode d’authentification est fournie a priori les utilisateurs doivent pouvoir être authentifiés et reconnus comme tel.
      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2020 à 17:34:27

        Salut, voici mon security.yaml

        security:
            role_hierarchy:
                ROLE_ADMIN:       ROLE_USER
                ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
        
            encoders:
                App\Fenrir\UserBundle\Entity\User:
                    algorithm: auto
        
            providers:
                our_db_provider:
                    entity:
                        class: App\Fenrir\UserBundle\Entity\User
                        property: username
        
            firewalls:
                page:
                    pattern: ^/p/
                    anonymous: true
                login:
                    pattern:   ^/(login$|register|reset)
                    anonymous: true
                main:
                    provider: our_db_provider
                    guard:
                        authenticators:
                            - App\Fenrir\UserBundle\Security\LoginFormAuthenticator
                            - App\Fenrir\UserBundle\Security\TokenAuthenticator
                        entry_point: App\Security\LoginFormAuthenticator
                    form_login:
                        use_referer: true
                        login_path: login
                        check_path: login_check
                        failure_path: login
                    logout:
                        path: /logout
                        target: /
        
            access_control:
                - { path: ^/p/*, roles: IS_AUTHENTICATED_ANONYMOUSLY }
                - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
                - { path: ^/loginWithToken, roles: IS_AUTHENTICATED_ANONYMOUSLY }
                - { path: ^/reset, roles: IS_AUTHENTICATED_ANONYMOUSLY }
                - { path: ^/reset/*, roles: IS_AUTHENTICATED_ANONYMOUSLY }
                - { path: ^/, roles: ROLE_USER }
        
            always_authenticate_before_granting:  true


        Merci :)

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          1 décembre 2020 à 12:31:07

          Tes firewalls anonymes ne définissent aucune méthode d’authentification, donc sous ces derniers les utilisateurs ne seront jamais authentifiés, CQFD.
          • Partager sur Facebook
          • Partager sur Twitter
            1 décembre 2020 à 19:24:54

            Salut.

            Premièrement merci de prendre le temps de répondre. :)

            J'ai fais quelques recherches. Je n'arrive pas à trouvé ce que tu appel une méthode d'authentification.

            Aurais tu un lien, ou alors un morceau du yaml pour que je comprenne de quoi tu parles ?

            Merci beaucoup

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              2 décembre 2020 à 8:04:14

              Le terme officiel est  « authentication provider ». Tu le trouveras dans la doc.
              • Partager sur Facebook
              • Partager sur Twitter
                11 décembre 2020 à 20:25:09

                Bonjour :D

                Bon je n'ai absolument pas réussi. J'ai du passer sur le nouveau système de SF 5.1 avec un access_control en PUBLIC_ACCESS. 

                https://symfony.com/doc/current/security/experimental_authenticators.html

                Bonne soirée :)

                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  11 décembre 2020 à 21:36:11

                  Le concept est le même, du coup c'est cool que ça t'a permis de te mettre à jour ! 👍
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Symfony 5 : Authentification facultative

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown