vog*_*ger 2 django django-allauth
我正在使用 django-allauth 来处理我网站中的用户注册。我注意到一种奇怪的行为。假设我在网站上注册了一个新用户。该用户会收到一封带有点击链接的新电子邮件。当用户单击该链接时,他将进入确认页面。在那里用户单击确认按钮并确认用户电子邮件。
问题是,作为副作用,用户也登录了。我不想要那样。这仅在我第一次访问该页面时发生。如果我再次访问该页面并确认电子邮件,则用户不会自动登录。
我的问题是如何防止用户在第一次确认电子邮件时登录。我搜索了文档,但找不到任何设置来防止这种情况。我还查看了 ConfirmEmailView 的源代码,除了手动注释此行之外,我看不到关闭此行为的方法
resp = self.login_on_confirm(confirmation)
Run Code Online (Sandbox Code Playgroud)
更新:
我想我找到了解决问题的方法,而无需分叉或其他任何东西。我只是在我自己的视图文件中复制了该类,以确保我还导入了所需的所有其他依赖项。然后我只是删除了登录时的调用及其调用的函数。我希望我在这方面做得很好。之后,在我的 urls.py 中,就在导入 allauth 之前,我复制了用于确认电子邮件的行并将其重定向到我自己的视图。现在看起来像这样
url(r'^accounts/confirm-email/(?P<key>\w+)/$', 'userprofile.views.confirm_email',
name="account_confirm_email"),
Run Code Online (Sandbox Code Playgroud)
似乎有点hackish,但它似乎运作良好。我希望有人提出更好的解决方案。
配置ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION上有一个选项。默认为 True。将其设置为 False。
ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2484 次 |
| 最近记录: |