- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用普通的 django-allauth,没有任何社交帐户。每个用户都应该有一个与其帐户关联的电子邮件地址,即用于注册/验证的电子邮件地址。我想让我的用户能够更改此电子邮件。
所以我的第一个问题是,我是否应该通过发送验证电子邮件来再次验证新电子邮件?我的直觉告诉我,我最好验证这封新电子邮件。但我对此没有真正的论据。
我的第二个问题是,如果想要验证这一点,django-allauth 是否已经以某种方式支持该过程?我已经看到了 EmailView 和 AddEmailForm。但这些都是基于一个帐户可以拥有多个电子邮件地址的假设(这不是我想要的)。
谢谢
最佳答案
我认为应该验证新的电子邮件地址。如果您的应用程序定期发送电子邮件,您不希望仅向用户输入的任何电子邮件地址发送大量电子邮件。
我所做的是允许多个电子邮件地址,直到第二个电子邮件得到验证。然后,按照 elssar 的建议监听 django-allauth 的 email_confirmed
信号。地址验证后,将新电子邮件地址设置为主电子邮件地址,然后删除任何先前的 EmailAdess
。这是我最终所做的一个简化示例:
型号:
from django.dispatch import receiver
from allauth.account.models import EmailAddress
from allauth.account.signals import email_confirmed
class CustomUser(models.Model):
...
def add_email_address(self, request, new_email):
# Add a new email address for the user, and send email confirmation.
# Old email will remain the primary until the new one is confirmed.
return EmailAddress.objects.add_email(request, self.user, new_email, confirm=True)
@receiver(email_confirmed)
def update_user_email(sender, request, email_address, **kwargs):
# Once the email address is confirmed, make new email_address primary.
# This also sets user.email to the new email address.
# email_address is an instance of allauth.account.models.EmailAddress
email_address.set_as_primary()
# Get rid of old email addresses
stale_addresses = EmailAddress.objects.filter(
user=email_address.user).exclude(primary=True).delete()
浏览次数:
def update_user_details(request):
user = request.user
new_email = request.POST.get('new_email')
user.custom_user.add_email_address(request, new_email)
...
关于django-allauth 在有/没有验证的情况下更改用户电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19755102/
我正在使用带有 allauth 的 django 1.6。 我刚刚启用了电子邮件验证功能,正在寻找识别身份的最佳方法 用户是否拥有经过验证的电子邮件 . 我遇到并想问的一件有趣的事情:我注意到一个用户
我想对 django-allauth 中的字段进行一些额外的验证。例如,我想阻止使用免费电子邮件地址。所以我想在注册时运行这个方法 def clean_email(self): email_d
我一直在尝试寻找如何使用 django-allauth 向已经注册并登录的用户添加新的社交帐户。到目前为止,我找到了this question , 和 this other question与我需要的
我想扩展 django-allauth 以包含其他第三方 OAuth 提供商(例如、SurveyMonkey、Qualtrics 等)。我还没有找到关于如何扩展 django-allauth 的好教程
我已经创建了一个Django Web应用程序,我想使用allauth为GitHub创建一个SSO。。我已经设置好了,它运行得很好。但现在,所有GitHub用户都可以登录我的网络应用程序。我想将其仅限于
如何将 Google One Tap 登录体验与 django-allauth 集成? django-allauth 已集成并且非常适合简单的用户名/密码登录。 我有 Google OneTap 更好
我已经设置了 allauth 并注意到它暴露了 /accounts/password/change/这是更改当前登录用户密码的可爱形式。它还暴露了/accounts/email/这非常适合处理与将电子
在多个站点上使用时,是否可以将Django allauth的身份验证方法设置为“email”? 我的目标是允许电子邮件地址为bob@example.com的用户在site1.com上创建一个帐户,并在
我目前正在尝试实现 SendGrid,以便为注册的社交帐户用户发送确认电子邮件,我收到以下错误 SMTPDataError at /accounts/facebook/login/callback/
我正在使用 django-axes 将登录尝试限制在管理后端。但是,对于通过 django-allauth 登录的前端客户端,我找不到任何机制来检测和防止登录失败。 使用 allauth 防止多次登录
我正在使用此代码(在 forms.py 中)作为我的 allauth 自定义注册表单: class RegistrationForm(UserCreationForm): birth_date
我正在使用 django allauth 身份验证系统,我使用带有“next”参数的社交注册,如下所示: 其中 next 是一个动态变量。 但是,我想为该过程注入(inject)第二个屏幕,询问电话
django-allauth docs声称支持让用户与社交网络断开连接的工作流程,他们甚至涵盖了当用户成功断开帐户时发出的信号。 但是文档没有说明如何启动断开连接。当我列出 allauth 项目中的所
我是Django的新手,并且已经安装django-allauth。 我遵循了文档,但是在安装后的步骤中遇到了麻烦: Add a Site for your domain, matching setti
我找到了相反场景的答案: django-allauth: Linking multiple social accounts to a single user 即。本地用户可以在其中连接社交帐户。通过社
我一直按照说明为我的网站设置 django-allauth 软件包,一切正常,直到注册后发送确认电子邮件为止。一切似乎都工作正常,因为我注册了并且有关新帐户的信息位于数据库中(user 表和 acco
我的系统中有两种类型的用户,我想在注册时分配适当的组。引用How to customize user profile when using django-allauth ,我想我可以覆盖注册表单并执行
我尝试关注最新的http://django-allauth.readthedocs.org/en/latest/#installation urls.py 文件如下所示: urlpatterns =
我正在利用 django-allauth 为我的属性(property)管理应用程序提供 Google 身份验证。这是我正在寻找的注册工作流程: A new manager goes to a reg
我主要使用 django-allauth 作为为管理后端创建用户帐户的方式。我希望发生的是: 1) 当用户完成注册过程时,发送验证电子邮件(到目前为止我已经这样做了)并将用户设置为非事件、员工,并通过
我是一名优秀的程序员,十分优秀!