2011-07-06 51 views
0

有沒有辦法通過電子郵件發送鏈接,該鏈接包含一個驗證鏈接是否由服務器發送的url參數,並驗證該鏈接在生成令牌後是否在一段時間內被點擊?時間敏感令牌系統?

回答

2

您可以執行以下操作步驟:

  1. 產生一個隨機的,唯一的密鑰,從用戶的每個請求(或爲每個用戶要訪問發送到您的服務器)
  2. 保存密鑰,用戶的電子郵件(或登錄),令牌生成的時間;
  3. 把密鑰發送給用戶,讓他訪問你的服務器throght鏈接

當用戶訪問您的服務器,您可以:

  1. 驗證,如果該鏈接以前使用(如果你想您的鏈接是一個一次性獲得唯一的可能性)
  2. 驗證時生成的令牌,如果它在允許的時間內calculte(如果它沒有過期)
  3. 允許用戶訪問 - 做任何你想要
  4. 將令牌標記爲已使用,如果您希望將其使用一次。
-1

如果開發了一個系統來生成唯一密鑰,請發送這些密鑰並使用這些密鑰接受來自電子郵件的http請求。好的。

+0

請問downvoter請自己解釋一下嗎? – Jay

+0

也許downvoter想看到一個實現的例子? – Richard

0

你只需要一個表來存儲令牌,電子郵件編輯部地址,生成日期,日期激活

當您生成的電子郵件您保存生成的令牌電子郵件&日期/時間

在你把郵件包含指向您的網頁的鏈接和令牌&電子郵件的網址。 e.g:

http://mysite.co.uk/activate.aspx?token=jhsdjsdslkwww7474&[email protected] 

然後該網頁已經找到令牌和電子郵件地址,檢查日期和更新日期激活,如果它是有效的。

0

我會存儲在一個分佈式緩存(用於負載平衡,多節點系統)隨機UUID,並繼續執行什麼woliveirajr如上所述。您還需要確保用戶不會濫用您的系統,因此通過Load-balancer(F5)中的某些設置來檢測人員與編程請求將有助於引入一定程度的保護。根據需要修改安全策略。