IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

redirection vers la page login tant que l'utilisateur n'est pas identifié


Sujet :

Symfony PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 279
    Par défaut redirection vers la page login tant que l'utilisateur n'est pas identifié
    Bonjour,

    Je cherche comment faire en sorte que l'utilisateur du site soit identifié avant de naviguer sur l'application:
    il ne doit pas accéder à une url tant qu'il est anonyme.

    Donc bien sûr, ma page d'accueil est un formulaire de login !
    Mais si l'utilisateur entre une url valide et qu'il n'est pas connecté, il doit être redirigé vers la page d'accueil.

    Au début , j'avais naïvement répété du code: pour chaque route, j'avais dans mes fonctions :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!$this->getUser()) {
        return $this->redirectToRoute('app_login');
    }

    Pas Bien , je sais. Alors sur dans le fichier security.yaml, j'ai rajouté un pattern:
    Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    main:
                pattern: ^/
                lazy: true
                provider: app_user_provider
                custom_authenticator: App\Security\AppAuthenticator
                logout:
                    path: app_logout
                    # where to redirect after logout
                    target: app_login

    Et ça marche, mais je doute que ce soit une bonne pratique !
    Peut-on faire autrement ( oui , j'imagine ) et comment, la meilleure façon de faire... ?

    Autre soucis, je ne sais pas s'il y a un rapport avec ma méthode, mais:
    si je tente en étant non connecté d'accéder à une page de suppression d'un utilisateur https://127.0.0.1:8000/user/3/delete,
    je suis dans un premier temps redirigé vers la page d'accueil/login.
    Mais lorsque je me connecte sur cette page, la fonction associée à l'url d'avant s'exécute: l'utilisateur 3 est supprimé !!!
    Et là, j'avoue ne pas comprendre pourquoi .
    Alors, je prends toutes les suggestions de bonne pratique dans le domaine, car je suis encore débutant...
    Merci à vous

    Laurent.

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 279
    Par défaut
    Non finalement ça ne marche pas !!!

    Je ne comprends plus comment fonctionne le firewall dans Symfony.
    Faut-il passer par le firwall ( je pense que oui ).
    Faire une classe ace la redirection dedans et appeler cette classe à chaque requête ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 279
    Par défaut
    Bonjour,
    donc après recherches et tatonnement, j'ai fais un truc du genre:
    Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    main:
                lazy: true
                provider: app_user_provider
                custom_authenticators: 
                        - App\Security\AppAuthenticator
                logout:
                    path: app_logout
                    # where to redirect after logout
                    target: app_login
     
               access_control:
                     - { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
                     - { path: ^/, roles: IS_AUTHENTICATED_FULLY }
    Et ça à l'air de bien marcher.
    Après , comme d'habitude pour le débutant que je suis: bonne méthode ? Y en a-t-il d'autres ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Empêcher la tabulation tant que la TextBox n'est pas saisie
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/07/2010, 22h14
  2. Réponses: 6
    Dernier message: 18/12/2009, 11h28
  3. vba tant que cellule active n'est pas ma cellule
    Par elise1983 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/09/2008, 22h34
  4. Réponses: 2
    Dernier message: 01/04/2008, 13h22
  5. Réponses: 2
    Dernier message: 01/11/2006, 22h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo