2010-11-28 32 views
3

我想驗證用戶電子郵件是否有效,並將此電子郵件轉爲我的系統中的他的ID。 但我不知道如何在郵件中創建一個鏈接,激活帳戶(如facebook和其他人 ),我並不真正瞭解鏈接被選中時會發生什麼。我不明白電子郵件激活如何工作

我想生成一個像「sdklbsdgk4493」這樣的密鑰進入一次,所以猜測是困難的,但對許多人來說,複製和粘貼並不是微不足道的,我可能會用這個解決方案惹惱他們。

任何想法或想法?

PS:我在C#中工作,所以如果它可以用C#來完成......這將是巨大的:)

感謝阿薩夫

回答

9

當你在數據庫中插入一個新用戶時,他們的狀態應該是「取消激活」,並且你插入一個你生成的「GUID」。您向他們發送指向您的激活頁面的鏈接,該頁面將在查詢字符串中包含此GUID。它看起來是這樣的:

www.YourSite.com/Activation.aspx?GUID=jdfhg43h98234

Activation.aspx頁面,你從查詢字符串藉此GUID並將其與你的數據庫有一個。然後您激活具有該GUID的帳戶。

+2

爲了減少作弊的機會,你最好加電子郵件本身(編碼)的URL,然後確保用戶在激活自己的電子郵件,而不只是猜測GUID。此外,在此設置過期日期,例如兩天後激活鏈接將不再可用。 – 2010-11-28 08:10:45

1

你有你的用戶表中的DB(或在永遠是你存儲你的用戶列表),只需添加一個列,說明用戶的郵件是否經過驗證。 爲驗證郵件添加一個鏈接,該鏈接使用用戶特定的代碼(如它在數據庫中的索引)激發一些PHP。 PHP會將用戶的「已驗證」列設置爲true,然後完成。

它並不像起初看起來那麼複雜。

1

這個想法是創建一個隨機密鑰,將其保存到連接到useraccount的數據庫,提供一個指向web服務(或普通網站)的用戶電子郵件鏈接,該密鑰作爲查詢字符串然後這將激活連接到該特定密鑰的帳戶。

4
  1. 創建用戶

  2. 爲用戶生成

  3. 的唯一字符串有存儲唯一的字符串,用戶ID,保存它是否得到了激活與否的一個boolean表,生成日期,到期日期以及如果您對這些激活字符串有不同用途,請鍵入(鏈接到另一個表)

  4. 現在在電子郵件中您應該獲取該字符串並將其寫入電子郵件以及指向您要用於驗證的頁面的鏈接,例如whatever.com/verify.aspx?activationString=hd3fd33fen342n43

  5. 在此頁面中,您可以在保存密鑰的表中執行查詢搜索如果它不是已經驗證