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

Bibliothèques et frameworks PHP Discussion :

NavBar Symfony FosUserBundle Inscription et Connexion


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Points : 7
    Points
    7
    Par défaut NavBar Symfony FosUserBundle Inscription et Connexion
    Bonjour à tous,

    Je code un projet sous SYmfony 3 avec FOSUserBundle.

    J'ai fait une navbar dans ma page de connexion avec une possibilité de connexion ou d'inscription.
    J'ai aussi un "mot de passe oublié" sous le formulaire de connexion de la page.

    La redirection de ces liens se fait bien sauf qu'il faut être connecté pour pouvoir y accéder... LOL
    Je peux donc accéder à mon formulaire d'inscription... après m'être connecté !
    Même chose pour le "mot de passe oublié".

    Je ne comprend pas bien pourquoi ça fait cela.

    Je vous remercie d'avance pour votre aide !

    Bonne journée à tous !

    PS: Je vous met en photo la page de connexion.

    Mon code de NavBar dans topnav.html.twig:

    Code Twig : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
     
                <p class="navbar-text" >TITRE</p>
            </div>
            <div id="navbar" class="collapse navbar-collapse">
                <ul class="nav navbar-nav navbar-right">
                    {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
                        <p class="navbar-text">
                        {{ 'layout.logged_in_as'|trans({'%username%': app.user.username}, 'FOSUserBundle') }}
                        </p>
                        <li>
                            <a href="{{ path('fos_user_security_logout') }}">
                                {{ 'layout.logout'|trans({}, 'FOSUserBundle') }}
                            </a>
                        </li>
                    {% else %}
                        <li>
                            <a href="{{ path('fos_user_registration_register') }}">
                                {{ 'layout.register'|trans({}, 'FOSUserBundle') }}
                            </a>
                        </li>
                        <li>
                            <a href="{{ path('fos_user_security_login') }}">
                                {{ 'layout.login'|trans({}, 'FOSUserBundle') }}</a>
                        </li>
                    {% endif %}
                </ul>
            </div><!--/.nav-collapse -->
        </div>
    </nav>

    Mon code de login dans login.html.twig :

    Code Twig : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    {% extends "@FOSUser/layout.html.twig" %}
     
    {% trans_default_domain 'FOSUserBundle' %}
     
    {% block title %}{% endblock %}
     
    {% block fos_user_content %}
    {% if error %}
        <div class="alert alert-danger" role="alert">
            {{ error.messageKey|trans(error.messageData, 'security') }}
        </div>
    {% endif %}
     
        <form action="{{ path("fos_user_security_check") }}" method="post" class="form-signin">
            <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
     
            <h2 class="form-signin-heading">Veuillez vous connecter</h2>
            <br>
            <label for="username" class="sr-only">{{ 'security.login.username'|trans }}</label>
            <input type="text" id="username" name="_username" value="{{ last_username }}" placeholder="Identifiant ou Adresse email" class="form-control" required autofocus />
            <br>
            <label for="password" class="sr-only">{{ 'security.login.password'|trans }}</label>
            <input type="password" id="password" name="_password" class="form-control" placeholder="Mot de passe" required />
     
            <a href="{{ path('fos_user_resetting_request') }}">Mot de passe oublié</a> <br><br>
     
            <input type="submit"
                   class="btn btn-lg btn-primary btn-block"
                   id="_submit"
                   name="_submit"
                   value="{{ 'security.login.submit'|trans }}" />
        </form>
     
    {% endblock fos_user_content %}
     
    {% block stylesheets %}
        <style>
            body {
                padding-top: 40px;
                padding-bottom: 40px;
                background-color: #eee;
            }
            .form-signin {
                max-width: 330px;
                padding: 15px;
                margin: 0 auto;
            }
            .form-signin .form-signin-heading,
            .form-signin .checkbox {
                margin-bottom: 10px;
            }
            .form-signin .checkbox {
                font-weight: normal;
            }
            .form-signin .form-control {
                position: relative;
                height: auto;
                -webkit-box-sizing: border-box;
                -moz-box-sizing: border-box;
                box-sizing: border-box;
                padding: 10px;
                font-size: 16px;
            }
            .form-signin .form-control:focus {
                z-index: 2;
            }
            .form-signin input[type="email"] {
                margin-bottom: -1px;
                border-bottom-right-radius: 0;
                border-bottom-left-radius: 0;
            }
            .form-signin input[type="password"] {
                margin-bottom: 10px;
                border-top-left-radius: 0;
                border-top-right-radius: 0;
            }
        </style>
    {% endblock %}
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Salut,

    Merci d'utiliser les balises CODE lorsque tu copies tu code (ça améliore grandement la lisibilité).
    Concernant ton problème c'est très probablement un soucis de configuration du firewall qui n'autorise aucune connexion anonyme et donc qui par défaut redirige vers la route de login.
    (cf. https://symfony.com/doc/3.4/security...access-control ou la doc de FoSUserBundle si la config se faisait dans un fichier .yaml dédié)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Ok merci, je vais regarder cela.

    Si d'autres ont des conseils/ idées en plus, je susi preneur

    Merci Bonne journée

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Effectivement, c'était un problème au niveau du Security avec le anonymous qui était à false. Je l'ai passé a true.
    Le bouton Inscription fonctionne donc mais la connexion par le log in ne fonctionne plus lorsque je rempli le formulaire...

    Par contre, j'ai un soucis au niveau de la redirection après le log in. Une fois connecté ça me redirige vers une page locale 127.0.0.1:8000 blanche.
    J'ai suivi plusieurs tuto pour faire cela mais rien ne fonctionne.

    Merci pour votre aide, passez une excellente journée !

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Et tu voudrais que la redirection "post login" se fasse vers quelle page ?
    Je pense que tu trouveras comment faire avec le contenu de cette page : https://symfony.com/doc/3.4/security...e-default-page

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    J'ai déja regardé toutes ces pages et beaucoup de tuto sans trouver pourquoi cela ne marche pas...

    En faite, je souhaite pouvoir m'inscrire ou me connecter. Si je m'inscrit je tombe sur la page Register de FOSUserBundle.
    Si je me connecte, je tombe sur une page d'accueil selon le rôle de la personne qui s'est connecté. Chaque rôle different (utilisateur, admin....etc) ont une page d'accueil différent. Le problème n'est pas la dedans, pour les rôles j'ai déja géré ca fonctionne.

    Si je passe le anonymous dans le security.yml à true : je peux cliquer sur Inscription dans la navbar et accer au formulaire, par contre quand je clique sur connexion et que je rempli le formulaire de connexion ca ne marche pas.
    Si je passe le anonymous à false : la connexion fonctionne et se connecte (mais ne me redirige pas vers la page d'accueil selon le role) ca m'affiche juste la page local 127.0.0.1:8000 blanche), mais le Inscription ne fonctionne pas, il faut me connecter pour ensuite pouvoir acceder au formulaire d'inscription.

    Je ne vois pas trop ou sont les problèmes....

    Merci !

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    En fait une fois que FosUserBundle est configuré correctement, il faut que tu implémentes ta logique "custom" qui va rediriger vers une page spécifique selon le rôle de l'utilisateur authentifié.
    Je ne sais pas si c'est toujours à jour mais j'ai trouvé ça qui me semble adéquate comme solution : https://gkueny.fr/rediriger-apres-login

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Points : 7
    Points
    7
    Par défaut ne fonctionne toujours pas
    Bonjour,

    Je comprend pas, ca ne marche pas :'(

    J'ai toujours le problème avec le bouton inscription et bouton connexion.
    Le bouton inscription marche à condition que je me sois connecté avant, ce qui est débile.
    Si je modifie le anonymous a true dans le security.yml, a ce moment la le inscription marche mais la connexion ne se fait plus.

    Je comprend vraiment pas comment regler ce probleme...

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Est-ce que tu as implémenté la solution décrite dans mon message précédent ?
    Si oui, qu'est-ce qui ne "marche pas" ?? Quel est le message d'erreur ? Quel est le résultat obtenu lors de l'authentification ?

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Bon je viens de comprendre en faite...

    Donc j'ai passé le anonymous du security.yml à true.
    Ce qui fait que le bouton Inscription fonctionne et me redirige vers la page register, et le bouton connexion vers la page avec le formulaire de login.

    L'inscription marche et m'ajoute bien le nouveau user dans la bd postgresql.
    la connexion marche mais lorsque je rempli le formulaire de connexion et clique sur connecter, ca me remet sur la page formulaire de connexion.
    En réalité je suis connecté puisque quand je rentre les url d'accueil de mon utilisateur je peux y acceder, et lorsque je ne suis pas connecté je ne peux pas.
    C'est donc juste un problème d'affichage et de redirection je pense.

    Il me reste donc a rediriger, une fois connecter, vers la page correspondant à l'utilisateur qui se connecte selon son role (car il y a une page d'accueil differente selon le role de la personne qui se connecte).

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Donc à personnaliser le contenu de la fonction onAuthenticationSuccess pour rediriger vers une page spécifique selon le rôle de l'utilisateur connecté.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    D'accord, merci !

    Je regarde cela d'ici demain et je vous tient au courant ici, en cas de besoin d'aide !

    Passez une bonne soirée et joyeuses paques !

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Points : 7
    Points
    7
    Par défaut Page Profile FOSUserBundle
    Bonjour,

    La redirection ne fonctionnant toujours pas (je n'ai pas encore réussi à faire le onAuthenticationSucess), je passe à autre chose afin d'avancer dans le travail et je reviendrai dessus plus tard.

    Je souhaite maintenant éditer la page "profile" générée par FOSuserBundle accessible à l'url 127.0.0.1:8000/profile.

    J'ai réussi à afficher dans cette page le username, l'adresse mail, le nom et prenom (que j'ai rajouté moi même dans l'entity User.php) grâce aux ligne
    <p>{{ 'Nom'|trans }}: {{ user.nom }}</p> etc etc.

    Je souhaite maintenant affiché d'autres données récupérée dans d'autre table (le rôle de l'utilisateur par exemple accessible dans la table User, ainsi que le last_login et le mot de passe). Mais je ne vois pas du tout comment faire et je ne trouve aucune réponse sur google.

    Je sais qu'il faut faire des requêtes pour récupérer les données de la BD mais je ne sais pas trop ou les faire puisque cela fonctionne avec FOSUserBundle.

    Merci de votre aide.

    Bonne journée.

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Salut,

    Les rôles, le last_login et le mot de passe ne sont pas eux aussi des attributs de ta classe User ??

    Dans ton template Twig ajoute un {{ dump(user) }} pour voir les données dont tu disposes déjà (pour les afficher de la même manière que le Nom).

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/12/2018, 19h43
  2. [Symfony] FOSUserBundle et roles
    Par sinzen dans le forum Symfony
    Réponses: 2
    Dernier message: 04/02/2016, 13h46
  3. [2.x] [SYMFONY] FOSUserBundle Probléme
    Par fred252589 dans le forum Symfony
    Réponses: 2
    Dernier message: 24/06/2014, 15h48
  4. [2.x] [FOSUserBundle] Inscription
    Par hanatelecom dans le forum Symfony
    Réponses: 0
    Dernier message: 05/08/2012, 00h40

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