1

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

最简单的方法是什么?

我有一个具有登录和注销操作的用户控制器,然后我有一个具有身份验证登录操作的应用控制器。

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

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

4

1 回答 1

1

首先,您必须存储上次更改密码的日期。所以用户表看起来像:id、登录名、密码、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();
}

现在,至于检查用户名和|密码是否相同,您需要在模型中为您的用户设置它作为自定义验证规则,并使其不允许使用用户名作为密码。

于 2013-03-11T08:18:20.457 回答