2009-07-16 16 views
2

我想從django應用程序創建django用戶,然後通過向他們發送帶有驗證鏈接的電子郵件來確認用戶創建。Django。通過郵件確認用戶創建

我怎樣才能安全地生成用戶細節此鏈接(我不想生成隨機值,並將其存儲在數據庫,我不希望使用任何外部模塊,如Pinax本)

回答

4

你會想去搶Django的註冊和叫它做:http://bitbucket.org/ubernostrum/django-registration/wiki/Home

這是一個簡單的應用程序,它 提供靈活的用戶註冊 基於Django的項目。默認設置 實現一個相當普遍的 工作流程:

  1. 用戶註冊賬戶。
  2. 用戶收到一封電子郵件,其中包含有關激活帳戶的說明。
  3. 用戶激活並開始使用該網站。

Google文檔如何整合並使用它:http://bitbucket.org/ubernostrum/django-registration/src/tip/docs/overview.txt

它管理REG鍵,超時時間和所有的處理激活帳戶。

我已經使用了這個幾次輕微的mods,並且使用gmail帳戶進行測試也非常容易。

在應用程序添加到您的settings.py與Gmail帳戶進行測試:

EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'YOURPASSWORD' 
EMAIL_PORT = 587 

此外,Django的配置文件是一個偉大的除了這個Django的註冊套件:http://bitbucket.org/ubernostrum/django-profiles/wiki/Home

1

你可以這樣做:

from django.utils.hashcompat import sha_constructor 

salt = "secret_salt" 
confirmation_key = sha_constructor(salt + email_address).hexdigest() 

然後發送confirmation_key作爲驗證鏈接中查詢字符串的一部分。我不確定這將是多麼安全。

爲什麼你想要沒有db的話呢?看看django-email-confirmation爲標準(使用數據庫)的方式來解決這個問題。

相關問題