2012-08-16 32 views
2

我需要在用戶在我的網站上註冊後實施電子郵件驗證機制。Play中的電子郵件驗證! 2.0

我想了解什麼是最好的架構,這是我的猜測:

  • 定義電子郵件驗證
  • 一種特殊的路由當用戶註冊生成令牌,並將其保存在緩存裏面一個令牌 - >用戶映射。
  • 發送一封電子郵件,其中包含指向將令牌作爲參數的路由的URL
  • 在特殊路由控制器中,使用令牌從緩存中檢索用戶,驗證電子郵件並將其存儲在數據庫中。

我的方法是否正確?有沒有更好的解決方案?

+2

聽起來正確。但是,您不應該僅僅依靠緩存來保存令牌 - 也應該將其存儲在數據庫中。另外,之後可能會刪除令牌(並且在任何情況下都會在某個時間點過期?)。 – Tommi 2012-08-16 10:46:35

+0

你如何處理到期日? – Edmondo1984 2012-08-16 10:58:54

+1

創建時使用令牌將當前時間戳存儲在數據庫中,然後在激活驗證例程時檢查它是否過舊。 (你也可以定期運行一個工作來清理任何舊的令牌,如果數據庫空間有問題的話。) – Tommi 2012-08-16 11:28:35

回答

1

有一些模塊可以爲Play 2.x提供此功能。您可能想看看Secure SocialPlay Authenticate(正如@biesior對問題的評論中所述)。

+0

+1對於安全的社交,這看起來非常好! – Edmondo1984 2013-02-18 09:42:07