当前位置:  开发笔记 > 编程语言 > 正文

如何使用Tornado和MongoDB发送用户注册确认电子邮件?

如何解决《如何使用Tornado和MongoDB发送用户注册确认电子邮件?》经验,为你挑选了2个好方法。

我正在使用Tornado和MongoDB,我想在我的应用程序中创建一个帐户时向用户发送一封确认电子邮件.

目前,我使用带有表单的简单XHTML页面,并使用Tornado将信息发送到MongoDB数据库.我想有一个中间步骤,在将数据插入数据库之前向用户发送电子邮件.

我想知道如何在用户收到电子邮件并确认其注册后才能发送此电子邮件并插入用户帐户.



1> Lars Wiegman..:

您需要的是激活URL.激活URL包含唯一ID,可能是UUID,在用户单击激活URL时会对其进行验证.

为避免将用户数据存储在数据库中,您可以将用户数据存储在发送给用户的激活URL中:

import urllib
data = urllib.urlencode({'name':'joe', 'password':'1234'})
activation_url = 'http://example.com/activate?%s' % data

但由于用户信息是以纯文本形式发送的,因此这种方法非常不安全.

解决此问题的正确方法是将用户的信息与激活标志一起存储在数据库中.当用户单击激活URL时,将验证唯一ID,并将激活标志设置为true以启用新用户帐户.

当您可以访问SMTP服务器或Gmail帐户时,使用Python发送电子邮件非常简单.

Python文档包含一些从Python发送电子邮件的示例.



2> lepture..:

我想知道为什么你会这样处理注册.处理注册的常用方法是:

    将用户信息写入数据库,但附加了"非活动"标签.

    发送电子邮件给用户.

    如果用户确认注册,则将用户切换为"活动".

如果您不想写入数据库,可以写入缓存(如memcache,redis),然后当用户确认注册时,您可以从缓存中获取用户信息并将其写入数据库.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有