2009-07-16 74 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为标准(使用数据库)的方式来解决这个问题。

相关问题