2012-08-16 72 views
-1

我是PHP的新手。我想創建一個模塊,門戶管理器用臨時密碼創建「用戶」。創建密碼重置鏈接,在PHP中過期24小時

  1. 一旦創建了用戶,該特定用戶應該會收到帶有過期24小時鏈接的電子郵件。
  2. 經理通過其他方式向用戶傳達臨時密碼。
  3. 如果用戶點擊24小時內的電子郵件鏈接,它應該要求臨時密碼,新密碼,並有一個確認新密碼字段。
  4. 如果臨時密碼正確,則用數據庫中的新密碼替換臨時密碼。

我該如何實施?

+0

您是否正在尋找某人爲您創建完整的邏輯,即使您沒有任何代碼供我們使用,在谷歌搜索時發現用戶註冊時的時間差減去當前時間,只有在您卡住時才尋求幫助一些地方與您的代碼... – 2012-08-16 15:50:03

+0

現在我試圖創建一個到期令牌。 – vimokumar 2012-08-16 15:50:23

+0

@AmanVirk:謝謝。 – vimokumar 2012-08-16 15:54:43

回答

0

我不能寫吧,因爲我不知道您的應用程序是如何構成的,但這將是我採取的一般方法:

  1. 用戶創建,推測可能與一個用戶名,並將這些細節放入數據庫中。
  2. 臨時密碼以隨機字符串形式生成。在數據庫中存儲散列(MD5,SHA - 如果您不知道,請將它們谷歌)以及NOW()的時間戳
  3. 用戶使用用戶名和臨時密碼登錄。如果用戶名和密碼匹配,並且當前時間減去所記錄的時間少於24小時,則請求新密碼。做相同的程序,將其散列並存儲在數據庫中。當他們下次登錄時,檢查哈希匹配。

這是否有意義或是任何部分完全陌生,需要進一步解釋?

+0

感謝您的意見,是有道理的。 – vimokumar 2012-08-16 16:21:14

1

一種選擇是在鏈接中有一個參數,該參數與有效日期一起存儲在數據庫中。如果沒有這樣的參數,則鏈接不被接受。如果有參數,您可以在數據庫中檢查到期日期。如果它有效,則進入更改密碼頁面。

實例鏈接:

http://www.example.com/updatepass?key=a8s67as78df7g96sd9fg6sdfg 

在數據庫表這種結構:

reset_id, user_id, reset_key, reset_timeout, reset_temp_password 

你可以驗證key參數,然後將臨時密碼。 user_id將用於加入存儲用戶信息的user表。

+0

謝謝你的迴應。 – vimokumar 2012-08-16 16:23:21