Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour voilà j'ai crypté un mot de passe avec mcrypt, je le stocke dans une table.
Alors mon prblème est que je n'arrive pas m'identifier dans ma partie login
Voilà l'action Login :
public function loginAction() { if ($this->_request->isPost()) { Zend_Loader::loadClass('My_Crypt'); $crypt = new My_Crypt(); $email = $this->_request->getPost('email'); $password = $this->_request->getPost('password'); $password = $crypt->encrypt($password); Zend_Loader :: loadClass('Zend_Auth_Adapter_DbTable'); $dbAdapter = Zend_Registry :: get('db'); $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter); $authAdapter->setTableName('users'); $authAdapter->setIdentityColumn('email'); $authAdapter->setCredentialColumn('password'); $authAdapter->setIdentity($email); $authAdapter->setCredential($password); $auth = Zend_Auth :: getInstance(); $result = $auth->authenticate($authAdapter); if ($result->isValid()) { $data = $authAdapter->getResultRowObject(null, 'password'); $auth->getStorage()->write($data); $redirect = $this->_request->getPost('redirect'); $this->_redirect($redirect); } else { $this->view->errorMessage = 'Login failed.'; } } $this->view->title = "S'identifier"; }
D'apres la documentation je dois utilisé $authAdapter->credentialTreatment, mais je ne comprends pa scomment l'utilisé.
Y'a t il d'autres solutions sinon ?
Merci ++
Dernière modification par alien7 (28-03-2008 11:41:53)
Hors ligne
Ben moi, j'avais rien changé (vu que le mot de passe en base était crypté) et lorsque je fourni les infos, je crypte le password avant de le donner au constructeur et ça marchais nickel...
Je me suis servi du tuto de kitpages...
Dernière modification par Mr.MoOx (20-09-2007 14:51:48)
Hors ligne
Bon j'ai remis mon 1er post à jour, je crois que c'etais ptete pas clair.
Hors ligne
Faut croire
Ben j'ai le même code à très (très) peu de chose près, moi je vois pas trop...
Zend_Debug::dump() pourrait t'aider peux être...
Dernière modification par Mr.MoOx (20-09-2007 15:28:59)
Hors ligne
C'est cette partie qui m'interresse et que je ne comprends pas.
Issu de la doc :
credentialTreatment: In many cases, passwords and other sensitive data are encrypted, hashed, encoded, obscured, or otherwise treated through some function or algorithm. By specifying a parameterized treatment string with this method, such as 'MD5(?)' or 'PASSWORD(?)', a developer may apply such arbitrary SQL upon input credential data. Since these functions are specific to the underlying RDBMS, check the database manual for the availability of such functions for your database system.
" developer may apply such arbitrary SQL upon " ??
Avec md5 ca marche
$authAdapter->setIdentityColumn('email'); $authAdapter->setCredentialColumn('password'); $authAdapter->setCredentialTreatment('MD5(?)');
Je n'arrive pas à adapter pour mcrypt
Dernière modification par alien7 (20-09-2007 16:37:12)
Hors ligne
Bonjour,
C'est possible d'utiliser AES_DECRYPT avec setCredentialTreatment ?
$authAdapter->setCredentialTreatment('AES_DECRYPT(?)');
En fait je ne sais pas comment mettre la clef.
Sinon est ce un bon moyen de cryptage efficace et securisé, pour un domaine professionnel ? Ou faut il mieux passer par mcrypt ?
Merci
Hors ligne
Résolu :
$authAdapter->setCredentialTreatment('AES_ENCRYPT(?, '.$key.')');
Attention à AES_ENCRYPT et non pas AES_DECRYPT, j'ai perdu beaucoup de temps là dessus.
Je redemande aussi si c'est une bonne pratique le crypatge plutot que le hashage ?
Car le cryptage est reversible donc une personne malveillant de l'equipe du site peut decrypter le password du client non ?
Hors ligne
Pages: 1