您好我正在創建一個簡單的使用CakePHP的忘記密碼系統,其中用戶將輸入他們的用戶名/電子郵件,然後收到一封帶有鏈接的電子郵件,他們可以點擊創建一個新密碼。CakePHP忘記密碼
我GOOGLE了四周,但沒有發現任何東西:/
使用CakePHP 1.3
您好我正在創建一個簡單的使用CakePHP的忘記密碼系統,其中用戶將輸入他們的用戶名/電子郵件,然後收到一封帶有鏈接的電子郵件,他們可以點擊創建一個新密碼。CakePHP忘記密碼
我GOOGLE了四周,但沒有發現任何東西:/
使用CakePHP 1.3
reset_password
控制器操作。reset_password
控制器操作中查找this->data['User']['email']
並將電子郵件地址存儲在數據庫表中。key
或token
字段。該字段應該是CHAR(40)。在reset_password
操作中,請執行$key = Security::hash(String::uuid(),'sha1',true)
以創建密鑰或散列並將其存儲在key
或token
字段中。$url = Router::url(($this->here), true).'/'.$key
裏面的控制器reset_password
的操作。這將根據當前操作生成一個URL,並在用戶單擊該電子郵件鏈接時向其添加關鍵參數,您可以在該功能中驗證該參數。Email
組件才能在郵件正文中實際發送包含上面生成的URL的電子郵件。這應該足以讓您朝着正確的方向前進。
我喜歡你的答案,一切工作到目前爲止 - 但如何繼續發送郵件後?如何設置新密碼或首先訪問用戶? – Isengo 2016-11-01 21:32:47
你可以看看兩個預的解決方案,可能滿足您的要求:
星火由Jedt插件 - https://github.com/jedt/spark_plug
用戶插件通過CakeDC - https://github.com/CakeDC/users
兩個有「忘記密碼」功能。你可以在你的項目中加入一個插件,從而獲得所有代碼的全部好處,或者你可以簡單地將他們的代碼挖掘到如何在你自己的項目中工作。
我想用戶名和密碼存儲在數據庫中,密碼存儲加密(散列加密)。但是你有沒有訪問數據庫? – sikas 2011-05-15 23:55:35