django完成电子邮件验证

标签 django django-rest-framework django-email

在将此问题标记为可能重复的问题之前,我想先解决一些问题。

我想确保用户有一个名为 email 的电子邮件字段。他们还有一个 is_verified 字段来指示电子邮件是否已经过验证。

大多数电子邮件验证实现都存在一些缺陷。 假设用户创建了一个帐户并拥有未经验证的电子邮件。不过,假设用户实际上并不拥有该电子邮件。

现在,电子邮件的实际所有者进入该网站。但是,由于电子邮件已保存在数据库中,我们收到完整性错误 - 该电子邮件已在使用中。

因此,任何诈骗者都可以输入随机电子邮件并索取它。 这降低了用户体验。如何避免这种情况的发生,从而提供一个完整的邮件验证系统呢? (实际所有者可以在其中索取他们的电子邮件)

那么,当用户使用已由其他用户拥有但未经验证的电子邮件注册时,是否应该删除现有用户?或者我们应该显示完整性错误消息?什么是正确的做法?

非常感谢!

最佳答案

是的,在注册过程中添加验证步骤非常重要。

  • 首先创建一个电子邮件模板并发送一封独特的电子邮件 用户注册时向其发送代码。实现免费电子邮件服务 从 Django 开始:

    在这里检查我的答案: How to send email via Django?

  • 比在寄存器函数中每次生成一个随机字符串 查看通过邮件发送验证码。例如。

    verifyCode = random.choice( ["a", "b", "c", "d", "x", "y", "z"]) + str(random.randint(100000, 1000000))
    
  • 创建一个临时表来存储未经验证的用户数据并 邮箱验证完成后删除,然后存入主目录 用户表。

  • 根据您的上一个问题,如果用户使用未经验证的电子邮件注册,则不应将其存储在主用户表中。不要使用该电子邮件和用户名登录(授予访问权限)该用户到您的网站。

希望这是你想要的。

关于django完成电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67345540/

相关文章:

django - 带有 DjangoFilterBackend 的 filterset_fields 不起作用

post - Django Rest Framework APIView 发布数据为空

django - 测试Django电子邮件以进行错误处理报告

python - 如何在 Django 中更改发件人电子邮件名称

javascript - Django 到 javascript 模板标签

python - 根据 OpenApi 3 .yml 架构验证 DRF 响应

python - Django Rest Framework ModelSerializer 在创建时设置属性

Django Rest Framework 2.4 类型错误 : __init__() got an unexpected keyword argument 'allow_none'

python - 如何在 Django 中记录所有外发电子邮件?

python - 根据用户选择模型表单中显示哪些字段