如何讓用戶在訪問其帳戶時必須重新輸入密碼?因此,例如:domain.com/account
,然後他們看到一個簡單的密碼字段(即使他們登錄),如果他們得到密碼錯誤的,那麼他們便會註銷,與會話消息,說「出於安全考慮,您已被送往主頁退出帳戶「。CakePHP:請求用戶在輸入帳戶時輸入密碼
任何人都可以幫忙嗎?
該帳戶是我的用戶控制器中的編輯方法。
感謝
如何讓用戶在訪問其帳戶時必須重新輸入密碼?因此,例如:domain.com/account
,然後他們看到一個簡單的密碼字段(即使他們登錄),如果他們得到密碼錯誤的,那麼他們便會註銷,與會話消息,說「出於安全考慮,您已被送往主頁退出帳戶「。CakePHP:請求用戶在輸入帳戶時輸入密碼
任何人都可以幫忙嗎?
該帳戶是我的用戶控制器中的編輯方法。
感謝
我會做這樣的事〜
// edit.ctp View
echo $this->Form->input('password_check', array('type'=>'password'));
// user.php Model
function check_user_password($get_the_current_users_id) {
$salt = Configure::read('Security.salt');
$this->User->id = $get_the_current_users_id;
$hashed_password = $this->User->field('password');
// check password
if($hashed_password == md5($data['User']['password_check'].$salt)) {
return true;
} else {
return false;
}
}
你需要調整密碼哈希位;如果你不使用鹽等
但這個想法是比較數據庫中的用戶散列密碼,他們提交的密碼。如果它匹配;那麼你可以繼續。否則,您可以註銷/返回錯誤。 (爲了可用性,我會而不是註銷用戶,因爲這隻會令人討厭。)
我在控制器中顯示密碼字段或編輯配置文件視圖的內容? – Cameron
基本if/else語句;也許使用'$ this-> render'來避免改變動作。如果他們通過身份驗證,則設置會話爲什麼要去解決所有這些問題?它打破慣例有一個用戶重新輸入密碼,只需在登錄後訪問他的帳戶,我能理解,要求密碼確認後作出敏感的變化。但你只是爲你的用戶做額外的工作。 – Ross
這是一個客戶端請求。他們在MobileMe網站上看到了類似的內容,並希望在我爲他們開發的應用中實現它。我仍然不完全理解如何使用您發佈的代碼。您是否能夠顯示控制器代碼以及如何使用發佈的功能?非常感激。謝謝 – Cameron
你正在使用什麼Cakephp版本? – Pehmolelu
1.3.8。爲什麼這對此很重要?謝謝 – Cameron
許多人已經轉向2.0,所以只是想澄清它。你有沒有嘗試過任何東西?就像製作帶有密碼字段的帖子表格,然後使用hashpassword函數對其進行散列並與登錄用戶散列密碼進行比較? – Pehmolelu