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 :

Formulaire de connexion


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Par défaut Formulaire de connexion
    Bonjour,

    Je viens vers vous, car je suis bloquer sur un formulaire de connexion. Quoi que je saisie, j'ai toujours le message "Bad credentials" Hors dans ma base de données. J'ai bien des valeurs. Et je ne trouve pas mon erreur si quelqu'un peut m'éclairer.

    Mon controller:
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php
     
    namespace test\FrontBundle\Controller;
     
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\Security\Core\SecurityContext;
     
     
    class LoginController extends Controller
    {
        /**
         * @Route("/login", name="_security_login")
         * @Template()
         */
        public function loginAction()
        {
            // ON récupère les erreurs d'authentification si le formulaire a été passé avec de mauvaises informations
            if ($this->get('request')->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
                $error = $this->get('request')->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
            } else {
                $error = $this->get('request')->getSession()->get(SecurityContext::AUTHENTICATION_ERROR);
            }
     
            return $this->render('testFrontBundle:Login:login.html.twig', array(
                // On envoie à notre vue le login qu'a saisi l'utilisateur précédemment
                'dernier_utilisateur' => $this->get('request')->getSession()->get(SecurityContext::LAST_USERNAME),
                // Et les erreurs qu'il y a eut lors de la validation du formulaire
                'erreur'         => $error,
            ));
        }
     
    /**
     * @Route("/login_check", name="/login_check")
     */
        public function loginCheckAction(){
            return true;
        }
     
        /**
         * @Route("logout")
         */
        public function logoutAction(){
     
        }
    }
     
    ?>
    Entity:

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
     
    namespace test\FrontBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\Security\Core\User\UserInterface;
     
    /**
     * @ORM\Entity()
     */
    class Utilisateur implements UserInterface
    {
      /**
       * @ORM\Column(name="id", type="integer")
       * @ORM\Id
       * @ORM\GeneratedValue(strategy="AUTO")
       */
      private $id;
     
      /**
       * @ORM\Column(type="string",unique=true)
       */
      private $username;
     
      /**
       * @ORM\Column(type="string")
       */
      private $password;
     
      public function getId(){
         return $this->id;
      }
     
    public function getUsername(){
         return $this->username;
      }
     
    public function setUsername($value)
        {
            $this->username = $value;
        }
     
     public function getPassword(){
         return $this->password;
      } 
     
    public function setPassword($value)
      {
        $this->password = $value;
      }
     
    public function getRoles(){
         return array('ROLE_USER');
      }
     
      public function getSalt() {
          return null;
      }
      public function eraseCredentials()
      {
      }
     
    }
    Le routing:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    login:
        pattern:   /login
        defaults:  { _controller: testFrontBundle:Login:login }
     
    # Cette route sera gérée automatiquement par symfony, il faut juste la déclarer
    login_check:
        pattern: /login_check
     
    # Cette route sera gérée automatiquement par symfony, il faut juste la déclarer
    logout:
           pattern: /logout
    Merci de votre grande aide.

    Vincent

  2. #2
    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
    une petite erreur assez classique c'est sur la colonne password en base de donnée qui dois avoir un varchar d'au moins 256 (si moins, le password peut être tronqué)

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Par défaut
    Merci beaucoup de la réponse. J'ai tester avec un varchar de 500 et ceci ne change pas.

    Cordialement,

    Vincent

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    Es ce que tu as verifié dans le fichier security que le mot de passe dans la base correspond à ton password crypté par le " encoders " ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 275
    Par défaut
    Merci de ta réponse, mais comment vérifier du coup? Je ne comprend pas.

    J'ai ceci dans mon security:
    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
     
    # To get started with security, check out the documentation: 
    # http://symfony.com/doc/current/book/security.html 
    security:
        encoders:
            test\FrontBundle\Entity\Utilisateur: plaintext
     
        providers:
            main:
              entity: { class: testFrontBundle:Utilisateur, property: username }
     
        firewalls:           
     
            secured_area:
                pattern:    ^/
                anonymous: ~
                form_login:
                    login_path: /login
                    check_path: /login_check
                logout:
                    path:   logout
                    target: index
     
        access_control:
            - { path: ^/admin, roles: ROLE_ADMIN }

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Par défaut
    tu utilise l'encoder plaintext pour tes mots de passe .
    si tu peux accéder à la base . Essaie avec le mots de passe tel qu'il est dans la base

Discussions similaires

  1. Formulaire de connexion qui ne connecte pas
    Par Lexion71 dans le forum Langage
    Réponses: 3
    Dernier message: 28/12/2007, 18h41
  2. Formulaire de connexion
    Par Interface dans le forum Langage
    Réponses: 6
    Dernier message: 21/09/2007, 14h06
  3. formulaire de connexion ne fonctionne pas
    Par masterix59 dans le forum Langage
    Réponses: 2
    Dernier message: 20/09/2007, 00h31
  4. formulaire de connexion utilisateurs
    Par lucienkany dans le forum Access
    Réponses: 1
    Dernier message: 02/07/2007, 22h45
  5. PB Utilisation formulaire de connexion
    Par stan314 dans le forum Access
    Réponses: 2
    Dernier message: 25/05/2006, 12h59

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