2012-08-08 60 views
0

我試圖讓我的頭在cakephp 2.1中創建一個被遺忘的密碼功能的過程。這就是我想要發生的事情。CakePHP忘記/重置密碼

  1. 用戶點擊忘記密碼鏈接
  2. 進入
  3. 蛋糕檢查該電子郵件存在
  4. 如果確實如此,他們被送到了某種隨機字符串的鏈接attahced附加到URL的電子郵件上
  5. 他們點擊鏈接並輸入新的密碼
  6. DB中的密碼更新
  7. 用戶可以登錄

我發現這個post但我希望有人能夠提供一些示例代碼來看看。

非常感謝提前

+1

你到目前爲止嘗試了什麼?任何代碼? – mark 2012-08-08 13:48:13

+0

這就是所有漂亮的基本編碼。這不是一個網站只是要求代碼,你必須展示一些工作,並提出具體問題(請參閱:[faq](http://stackoverflow.com/faq))。例如,你堅持什麼部分。 – jeremyharris 2012-08-08 14:29:59

+0

好的,我的錯誤。我會盡快發佈。 – 2012-08-08 15:51:22

回答

1

我最近在一個個人項目中做了這樣的事情。這可能不是最好的解決方案,但這是我的過程:

  1. 用戶未登錄用「恢復密碼」表單提交他的電子郵件。
  2. 控制器找到電子郵件的所有者(如果有),生成代碼並將其保存到用戶模型中的專用列。然後發送一個編碼鏈接到電子郵件,其中包含用戶ID和生成的代碼。
  3. 用戶訪問他的電子郵件並單擊鏈接。
  4. 控制器接收器參數並將其拆分爲代碼和ID,讀取用戶ID並檢查代碼是否匹配,如果是,則顯示新密碼錶單,如果不是,則清除代碼並要求用戶重新啓動進程。

筆記。

  • 我使用uuid作爲用戶標識和10個長度的隨機字符串作爲代碼。我通過'_'加入以使代碼發送到電子郵件。
  • 在我的實現中,代碼不會按時過期,但如果用戶登錄或錯過(很可能通過猜測)代碼將會清除。
+0

非常有幫助的感謝,似乎比我想象的容易得多。 – 2012-08-09 08:05:52