Bonjour à toutes et à tous ,
D'abord un grand merci pour ce magnifique site web ^^ pleins de tutoriels tous aussi excellent les uns que les autres !!
Donc voilà je vous explique, j'ai besoin de mettre en place un système de hash bien particulier:

[code]$password = mysql_escape_string(base64_encode(pack("H*", sha1(utf8_encode($password)))));[/code]

Donc voila ma fameuse ligne ^^

j'ai donc décidé de créer mon custom de cette façon :

[code]
<?php
App::uses('AbstractPasswordHasher', 'Controller/Component/Auth');

class CustomPasswordHasher extends AbstractPasswordHasher {

public function hash($password) {
    return mysql_escape_string(base64_encode(pack("H*", sha1(utf8_encode($password)))));

}

public function check($password, $hashedPassword) {
    return $hashedPassword === $this->hash($password);

}

}
?>
[/code]

Afin de pouvoir l'appeler j'ai donc fais :

[code]
<?php

App::uses('Controller', 'Controller');

class AppController extends Controller {
public $components = array(
'Session',
'Cookie',
'Auth' => array(
'authenticate'=>array(
'Form'=> array(
'scope' => array('AccountDatum.activated' => 1),
'passwordHasher' => array(
'className' => 'Custom',
)
)
)
)
);

function beforeFilter(){
    $this->Auth->allow();
}

}
?>
[/code]

et voilà ma fonction signin :

[code]
App::uses('CustomPasswordHasher', 'Controller/Component/Auth')
function signin(){
$this->layout = 'single';
if($this->request->is('post')){

        if($this->Auth->login()){
            $this->Session->setFlash('Vous êtes maintenant connecté','notif');
            $this->redirect('/');
        }
        else{
            $this->Session->setFlash('Identifiant incorrects','notif',array('type' => 'error'));
            debug($this->Auth->login);
            debug($this->request->data['AccountDatum']['password']);
        }
    }
}

[/code]

Pour mon inscription mon hash est correct j'ai utilisé cette façon :

[code]
if(!empty($d['AccountDatum']['password'])){
$d['AccountDatum']['password'] = CustomPasswordHasher::hash($d['AccountDatum']['password']);
}
[/code]

Mais pour ma connexion impossible il me met sans arrêt Identifiant incorrect et quand je veux "debug" on ne voit pas le hash du mot de passe.
Dans l’espérance que quelqu'un arrive à me mettre sur le voie ^^".

Aucune réponse