Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-11-2010 01:03:36

mouradsi
Nouveau membre
Date d'inscription: 30-10-2010
Messages: 6

[Résolu]:[Zend_Auth] :: Encryptage du password avec MD5

Bonjour,

J'essaye d'utiliser le MD5 pour le cryptage du password dans un formulaire de connection, mais le résultat du connection est toujours "Mot de passe incorrecte'.

Ci-dessous le code:

Code:

<?php

class IndexController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        if (Zend_Auth::getInstance()->hasIdentity()){
            $this->_redirect('acceuil/index');
        }

        $request = $this->getRequest();
        $form = new Form_Login();
        $this->view->form = $form;

        if ($request->isPost()){
            if ($form->isValid($this->_request->getPost())){
                $username = $form->getValue('login');
                $password = $form->getValue('password');

                $authAdapter = $this->getAuthAdapter();

                $authAdapter->setIdentity($username)
                            ->setCredential($password);
                $auth = Zend_Auth::getInstance();
                $result = $auth->authenticate($authAdapter);

                if ($result->isValid()){
                    $authStorage = $auth->getStorage();
                    $authStorage->write($authAdapter->getResultRowObject(null, 'Password'));
                    $this->_redirect('acceuil/index');
                }else{
                    $this->view->messageErreur = 'Nom utilisateur ou mot de passe erroné';
                }
            }else{
                $this->view->messageErreur = 'Champs de saisie obligatoires';
            }
        }
    }

    public function logoutAction()
    {
        // action body
       Zend_Auth::getInstance()->clearIdentity();
       $this->_redirect('index/index');
    }

    private function getAuthAdapter()
    {
        $authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter());

        $authAdapter->setTableName('users')
                    ->setIdentityColumn('Username')
                    ->setCredentialColumn('Password')
                    ->setCredentialTreatment('MD5(?)');

        return $authAdapter;
    }


}

Merci d'avance pour le help.

Dernière modification par mouradsi (22-11-2010 00:11:18)

Hors ligne

 

#2 20-11-2010 11:28:13

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: [Résolu]:[Zend_Auth] :: Encryptage du password avec MD5

Bonjour !

$password = $form->getValue('password');
...
$authAdapter->setIdentity($username)
                   ->setCredential($password);

Si je prends ces lignes, je vois que tu essayes de logguer l'utilisateur avec les infos qu'il a donné... Donc le mot de passe en clair, hors tu dis l'avoir en md5 dans ta base.

Il faut donc que le mot de passe que l'utilisateur te donne soit mis en md5 avant d'être vérifié.

Code:

$authAdapter->setIdentity($username)
                   ->setCredential(md5($password));

Et voilà ça devrait marcher !

Hors ligne

 

#3 21-11-2010 15:15:18

mouradsi
Nouveau membre
Date d'inscription: 30-10-2010
Messages: 6

Re: [Résolu]:[Zend_Auth] :: Encryptage du password avec MD5

Problème résolu.

Merci pour l'aide.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages