我被配置变量ACCOUNT_CONFIRM_EMAIL_ON_GET
弄糊涂了。(文档)
如果用户在电子邮件中单击激活链接,该请求不是必须是get请求吗?(肯定是我错了或者遗漏了什么)。
从我的测试,如果我离开ACCOUNT_CONFIRM_EMAIL_ON_GET
设置为假,当我点击激活链接从我的电子邮件我的帐户没有被激活。我在这里错过了什么?
发布于 2015-01-31 11:41:18
当用户注册时,将生成一个url来确认电子邮件地址。例:
http://www.example.com/accounts/confirm-email/iq4ma0qw6fqazui7ilwd4b3vftg/
当ACCOUNT_CONFIRM_EMAIL_ON_GET
设置为True
时,用户只需单击链接即可确认电子邮件。这是因为通过单击链接,他将请求url ( GET ),因此,allauth将电子邮件地址标记为确认,因为收到了该url的GET。
当ACCOUNT_CONFIRM_EMAIL_ON_GET
设置为False
时,当用户单击该链接时,将加载一个页面,其中将有一个按钮"Confirm e-mail address"
或类似的按钮。然后,用户必须单击该按钮,该按钮将生成将确认电子邮件的POST请求。这是因为allauth会将电子邮件地址标记为只在邮件中确认,而不是在收到对电子邮件确认url的请求时标记。
发布于 2015-01-31 08:17:39
如果查看源,可以看到从URL传递给视图的参数将被重定向到post()方法,这意味着用户将看不到确认屏幕。
https://github.com/pennersr/django-allauth/blob/master/allauth/account/views.py#L213
https://stackoverflow.com/questions/28248647
复制相似问题