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