對於使用「username」和「password」的用戶,我有一個mongo db結構。我正嘗試在cakephp登錄中使用Auth,但它似乎不適合我。我嘗試刪除$ this->數據,但仍然無效。如何在使用mongodb的cakephp中使用Auth
我的密碼是使用安全哈希::散列($這個 - >數據[ '用戶'] [ '密碼'])
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')
)
)
));
下面是結果,當我調試的登錄方法:
array(
'User' => array(
'password' => '*****',
'username' => '[email protected]',
'remember' => '0',
'auto_login' => '0'
)
)
我不知道爲什麼我不能用MongoDB的使用驗證。我在這裏先向您的幫助表示感謝。
編輯:
,當我試圖把眼前的佈局,它顯示我在頁面說法底部的查詢:
db.users.find({"username":"[email protected]","password":"2fdf49ffc396453960802df8fc2417655d1e8fca"}, []).sort([]).limit(1).skip(0)
,我從所輸入的密碼的哈希值。表單與正在查詢的散列值不同。散列值應該是「a2374c309ab7823dcd9b4e21dae7511f7a9c7ec5」。爲什麼cakephp將密碼轉換爲另一個散列值?
您正在使用哪個版本的CakePHP? – 2013-05-09 16:08:52
即時通訊使用Cake 2.3.3 – comebal 2013-05-09 16:11:14
在這種情況下,您應該使用'$ this-> request-> data'而不是'$ this-> data'。 – 2013-05-09 16:14:09