2013-03-11 38 views
1

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

最简单的方法是什么?

我有一个用户控制器,它具有登录和注销操作,然后我有应用程序控制器与Auth登录操作。

我想要做的是检查以下两件事情之一:如果密码在过去3个月内发生了变化,或者密码为空或者与用户名相同。

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

回答

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(); 
} 

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

相关问题