「ユーザー名」と「パスワード」を持つユーザー用のmongo db構造があります。Cakephp ログインで Auth を使用しようとしていますが、うまくいかないようです。$this->data を削除しようとしましたが、それでもうまくいきませんでした。
私のパスワードは Security::hash($this->data['User']['password']) を使用してハッシュされています
if(!empty($this->data))
{
if($this->Auth->login($this->data))
{
echo "yes";
}
else{
echo "no";
}
}
私のアプリコントローラーにはこれがあります:
public $components = array('DebugKit.Toolbar', 'Session', 'Auth' => array(
'loginAction' => array(
'controller' => 'pages',
'action' => 'home'
),
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'username', 'password' => 'password')
)
)
));
login メソッドをデバッグした結果は次のとおりです。
array(
'User' => array(
'password' => '*****',
'username' => 'test@test.com',
'remember' => '0',
'auto_login' => '0'
)
)
mongodb で Auth を使用できない理由がわかりません。事前に助けてくれてありがとう。
編集:
レイアウトを取り除こうとすると、ページの下部に次のようなクエリが表示されます。
db.users.find( {"username":"test@test.com","password":"2fdf49ffc396453960802df8fc2417655d1e8fca"}, [] ).sort( [] ).limit( 1 ).skip( 0 )
フォームから入力したパスワードのハッシュ値が、照会しているハッシュ値と異なります。ハッシュ値は「a2374c309ab7823dcd9b4e21dae7511f7a9c7ec5」である必要があります。Cakephp がパスワードを別のハッシュ値に変換しているのはなぜですか?