2014-09-26 34 views
0

我使用的Blowfish散列密碼在我的模型之前保存像這樣:分配用戶自定義密碼CakePHP的AuthComponent和河豚哈希

... 

$passHash = new BlowfishPasswordHasher(); 
$this->data[$this->alias]['password'] = $passHash->hash($this->data[$this->alias]['password']); 

... 

我使用的是MySQL後端,顯然我不能只分配該用戶的密碼字段中的密碼,因爲它使用Blowfish hasher,所以它將永遠不會使用Auth Components身份驗證進行身份驗證。

那麼,我怎麼能指定一個用戶自定義密碼供他們使用?

回答

0

在一位同事的建議下,我最終創建了一個shell腳本來管理用戶。

在控制檯/命令中我創建了UserShell.php它有一個updatePassword函數,它將用戶名和密碼作爲參數。在功能我用的用戶名,然後使用以下方法來保存由beforeFilter

設置用戶的機型散列自定義密碼...

$this->User->saveField('password', $password); 

這是一個快速的解決方案設置用戶爲我的問題。

1

爲什麼不在用戶模型中使用相應視圖的編輯方法?您可以在那裏編輯用戶密碼,如果以這種方式向數據庫發送密碼,它將負責密碼散列。

+0

問題是這需要很多開銷..我需要管理員身份驗證,視圖,控制器,模型等... – karns 2014-09-27 00:37:33