使用cakePHP登录时检查用户密码

时间:2013-03-11 07:32:39

标签: php authentication cakephp-2.2

我想在登录后检查用户的密码。

最简单的方法是什么?

我有一个具有登录和注销操作的用户控制器,然后我有一个带有Auth登录操作的App Controller。

我想要做的是检查两件事中的一件:如果密码在过去3个月内被更改,或者密码为空或与用户名相同。

如果满足以下3个条件中的任何一个,系统将提示用户输入新密码。我将如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

首先,您必须存储上次更改密码的日期。所以users表看起来像: id,login,password,pwd_date

其次,在你的AppController-> login()方法中,你需要添加一些类似于

的代码行。
$user = $this->User->findById($this->Auth->getUser('id'));
if ($user['User']['pwd_date'] < strtotime('-3 months') || '' == trim($user['User']['password'])){
    promptViewToShowMustResetPassword();
}

现在,至于检查用户名和密码是否相同,您需要在模型内为用户设置自定义验证规则,并且不允许使用用户名作为密码。< / p>