2013-03-11 42 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(); 
} 

現在,至於檢查用戶名和密碼是否相同,您需要在模型中爲用戶設置它作爲自定義驗證規則,並且不允許使用用戶名作爲密碼。