2011-04-13 123 views
0

我正在設計一個電子郵件來總結用戶的狀態,這封電子郵件會提供一些建議讓用戶在他們的帳戶中採取行動。所以,我想知道是否有一種方法可以讓用戶立即從電子郵件進入他們自己的帳戶,而無需再進行一次登錄?電子郵件的限制

+0

登錄到Web應用程序?(桌面應用程序,電話,其他?) – 2011-04-13 20:43:39

回答

1

您可以生成唯一的一次性URL,以允許用戶通過將token存儲在數據庫中並將其與用戶的帳戶關聯來登錄。你可以結構URL這樣的,如果你想:

http://www.example.com/login.php?token=EWYAOpJBHgEioVrWRDzeDGhySEyOGKpsaUIe0EnF 

末的隨機的東西幾乎是不可能通過暴力破解,因爲你可以把它任意長。

一旦用戶使用該URL登錄,您可以通過重定向到主頁來阻止其再次使用,並提供一條錯誤消息,指出該URL是臨時的並且已過期,或者向用戶提供一個按鈕它發送一封電子郵件與另一個URL。

但是我認爲如果你只是在點擊鏈接時向用戶提供部分填充的表單(只有用戶名)會更好,因爲該URL可以被回收或留下而不用擔心流氓暴徒。

4

當然。如果你正在編寫應用程序,任何事情都是可能的。

通常的做法是在您提供給應用程序的每個鏈接中包含一個「驗證器」。當我們說「認證者」時,我們的意思是「隨機字母和數字」。

每一個環節,你包括可能類似於:

<a href="...?auth=ilTmMDiTL0d46ZmNfDOpme84t3E8XdEbeFbRSZyCSoAiIkGFr2gRQnRFrtmaA4i">Delete My Account Forever</a> 

爲了使這項工作,你的數據庫需要錄製ilTmMDiTL0d46ZmNfDOpme84t3E8XdEbeFbRSZyCSoAiIkGFr2gRQnRFrtmaA4i是一個有效的認證來獲得訪問,比方說,VoteyDisciple的賬戶。所以,當這個字符串出現時,你知道要登錄我。

問題當然是,如果其他人看到該電子郵件(包括如果我將它轉發給某人),他們也可以點擊鏈接,現在冒充我!你可以通過限制這種認證者有效的時間限制來減輕這種影響,通過限制它的使用僅限於一個特定的行爲(例如,「我會讓你做X,但如果你想做其他任何事情需要登錄),或通過其他方式。

但最終,您的目標是讓人們在未登錄的情況下「登錄」這一事實表明,這不是一個高度安全的環境,因此風險驗證碼可能會受到威脅,可能不會有任何問題。

+0

得到您了。感謝您的快速響應。 – dsmonkey 2011-04-13 20:53:19