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 :

Autologin sans FOSUserBundle


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut Autologin sans FOSUserBundle
    Bonjour à tous,

    Je viens de mettre en place la gestion des utilisateurs sans passer par FOSUserbundle en suivant la doc sur cette url ?

    http://symfony.com/doc/current/cookb..._provider.html

    Le login fonctionne, l'inscription également.

    Mais je n'arrive pas à mettre en place l'autologin suite à l'inscription par exemple.

    Je trouve rien à ce sujet.

    Pouvez vous me mettre sur la piste, ou me donner un exemple de comment faire les choses svp ?

    Merci d'avance

    Decad7

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut
    Je n'arrive toujours pas à avoir quelques choses qui fonctionne. (alors que le login via le formulaire fonctionne)

    Voici ce que j'ai rajouté dans la partie qui est utilisée pour la création du compte utilisateur

    Code : 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
     
    public function inscriptionAction(Request $request)
        {
     
            //Instance de l'utilisateur
            $user = new UserEntity();
            //Récupération de la form pour l'inscription
            $form = $this->createForm(RegisterUser::class, $user);
            $form->handleRequest($request);
     
            //Soumission du formulaire
            if ($form->isSubmitted() && $form->isValid()) {
     
                //Encodage du password
                $password = $this ->get('security.password_encoder')
                                         ->encodePassword($user, $user->getPassword());
                $user->setPassword($password);
                $user->setIsActive(1);
                $user->setLastConnexion(new \DateTime());
                $user->setRoles("ROLE_USER");
     
                //Sauvegarde de l'utilisateur en bdd
                $em = $this->getDoctrine()->getManager();
                $em->persist($user);
                $em->flush();
     
                //création du token utilisateur          
                $token = new UsernamePasswordToken($user->getUsername(), $user->getPassword(), 'main', $user->getRoles());
                $this->get('security.token_storage')->setToken($token);
     
                //Redirection sur la home du site
                return $this->redirectToRoute('homepage');
            }
     
            //Affichage du formulaire d'inscription
            return $this->render(
                '@MonAppli/Page/inscription.html.twig',
                array('form' => $form->createView())
            );
        }
    Si vous avez une idée, merci d'avance

    Decad7

  3. #3
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    dans security.yml, tu as configuré access_control ?

    il ne faut pas definir le login la dedans

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut
    Oui c'est déjà fait, voici mon fichier de sécurité

    Code : 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
     
    security:
        role_hierarchy:
             #ROLE_USER: [ROLE_AUTHOR, ROLE_OPERATOR, ROLE_DELIVER, ROLE_FINANCIAL]
             ROLE_ADMIN: [ROLE_USER]
             ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_USER, ROLE_ALLOWED_TO_SWITCH]
        encoders:
            MonAppli\Entity\User\User:
                algorithm: bcrypt
        providers:
            our_db_provider:
                entity:
                    class: MonAppli:User\User
            in_memory:
                memory: ~
     
        firewalls:
            # disables authentication for assets and the profiler, adapt it according to your needs
            dev:
                pattern: ^/(_(profiler|wdt)|css|images|js)/
                security: false
            main:
                pattern: ^/
                http_basic: ~
                provider: our_db_provider
                anonymous: ~
                form_login:
                    login_path: /login
                    check_path: /login_check
                logout:
                    path: /logout
                    target: / 
                switch_user: { role: ROLE_SUPER_ADMIN, parameter: _want_to_be_this_user }
     
        access_control:
            - { path: ^/admin, roles: ROLE_ADMIN }
            - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/forum/nouveau_topic, roles: ROLE_USER }
            - { path: ^/membre, roles: ROLE_USER }
            - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    Et quand je passe par le login, tout fonctionne correctement. J'aimerais juste faire l'autologin à la création d'un compte, ou lors d'une action par exemple (activation via email)

    Merci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut
    Personne n'a une petite idée, ou une piste à me donner ?

  6. #6
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    vu que personne ne puis t'aider et quand tu ne trouves pas, que t'es dans la mouise.... que tu n'as plus solution

    soit tu appels l'agence tous risque ...
    soit tu repars de zéro

    je te conseille la 2ème solution


    chez moi ça fonctionne bien en sf2.7, avec :

    config.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    fos_user:
        db_driver: orm
        firewall_name: main
        user_class: Acme\UserBundle\Entity\User


    security.yml
    Code : 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
     
    security:
        encoders:
            "FOS\UserBundle\Model\UserInterface": sha512
     
        role_hierarchy:
            ROLE_ADMIN:       ROLE_USER       
            ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] 
     
        providers:
            fos_userbundle:
                id: fos_user.user_provider.username_email
     
        firewalls:
            dev:
                pattern: ^/(_(profiler|wdt)|css|images|js)/
                security: false
     
            main:
                form_login:
                    provider:       fos_userbundle
                    login_path:     /login
                    check_path:    /login_check
     
                anonymous:  true        
     
                remember_me:
                    key:         %secret%  
                anonymous:       true
    tu tests, c'est ok ? si oui ajoute des parties, un peu à la fois et testes. en n'oubliant pas de vider le cache !



    sinon tu peux allez voir dans le vendor. le controller register. dans l'action voir pas à pas pourquoi et à quel code il te déconnecte.....





    l'agence tous risque c'est vraiimeeeent la dernièèèèère chaaaance .... hum pardon !

Discussions similaires

  1. [2.x] [Sessions ?] Peut-on gérer les utilisateur sans FosUserBundle ?
    Par mondher bensalem dans le forum Symfony
    Réponses: 3
    Dernier message: 06/11/2014, 19h16
  2. [2.x] [FOSUserBundle] Registration sans logout
    Par philodido dans le forum Symfony
    Réponses: 0
    Dernier message: 09/09/2013, 18h06
  3. [2.x] FOSUserBundle : lignes sans identifiant ni mot de passe
    Par DanaKil dans le forum Symfony
    Réponses: 0
    Dernier message: 02/03/2012, 12h28
  4. MDI sans MFC, possible ?
    Par delire8 dans le forum MFC
    Réponses: 4
    Dernier message: 17/06/2002, 07h38
  5. [Kylix] Fiches sans bordure
    Par alex dans le forum EDI
    Réponses: 4
    Dernier message: 28/04/2002, 21h19

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