2010-02-01 52 views
2

場景:如何實現電子郵件地址選擇加入?

用戶給你一個電子郵件地址。在他們註冊服務之前,他們需要驗證電子郵件地址 - 通過電子郵件發送URL,點擊它,然後他們可以訂閱服務。

問題:

該URL是什麼樣子?我在想一個隨機的GUID會好的。

您是否使用相同的隨機密鑰進行取消訂閱請求?

在我應該看的雙啓動有什麼好的開源實現嗎?

回答

1

我已經在這種目的之前使用了一個隨機的GUID來驗證電子郵件帳戶,它運作良好。除非您正在處理超安全,超敏感的數據,否則就足夠了。我發現沒有理由不使用相同的GUID來取消訂閱請求 - 這樣,您只需要爲每個帳戶存儲一個GUID,以便查找訂閱者數據庫(或存儲它們)。您可以將取消訂閱鏈接添加到所有電子郵件的底部,使其成爲一個簡單的單擊選項。

+0

Guid.NewGuid()。ToString(「N」)一直是很久以前的朋友。 – granadaCoder 2015-08-10 17:14:08

1

這很容易實現一個隨機字符串和GET請求。我可能不會使用相同的取消訂閱,因爲你知道大多數人將失去原來的電子郵件。以同樣的方式做 - 他們說他們想取消訂閱,而且這樣做,但也會發送電子郵件說,如果發生意外,您已取消訂閱。

編輯:你甚至不需要確保一個唯一的字符串,因爲你也會傳遞電子郵件地址。

+0

我希望不要在URL中包含電子郵件地址 - 實際上,隨機字符串將是電子郵件地址的代理。 退訂鏈接將包含在每個發送的電子郵件中。 – chris 2010-02-01 19:32:40

+0

在這種情況下,你只需要確保你的字符串是唯一的。這也造成了另一個問題 - 您確定獨特性多久了?假設我訂閱並點擊鏈接。第二天,其他人獲得相同的隨機字符串(不太可能,但可能),但不會點擊鏈接。我忘了,我再次點擊它。 Poof,他們已訂閱。 – Jon 2010-02-01 19:44:33

+0

或者更糟糕的是,如果您使用相同的想法取消提交。這裏還有一個鏈接(可能在我的郵箱中很深),現在可能會取消訂閱其他人。或者,在假設的最壞情況下,您只需使用一個腳本在每個組合中打開取消訂閱確認頁面。 (好吧,從統計角度來看,它們不會很遠,我的觀點是,只有兩個有意義的令牌通常比一個令牌更好。) – Jon 2010-02-01 19:47:11

相關問題