我在我的Django项目中使用django-allauth,我知道ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION
默认设置为True
。不幸的是,用户在确认后仍然没有自动登录,因此我明确将此设置设置为True
。但是,用户在确认电子邮件后仍然无法登录。我的allauth设置如下:
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_EMAIL_SUBJECT_PREFIX = 'MyApp | '
ACCOUNT_PASSWORD_MIN_LENGTH = 6
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = True
ACCOUNT_EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL = 'app:createStudent'
ACCOUNT_EMAIL_CONFIRMATION_ANONYMOUS_REDIRECT_URL = 'app:createStudent'
LOGIN_REDIRECT_URL = 'app:index'
ACCOUNT_LOGOUT_REDIRECT_URL = 'app:index'
ACCOUNT_LOGOUT_ON_GET = True
邮件确认重定向也无法正常触发,用户被路由到索引页。这可能表示用户已经登录,但我有条件检查:
{% if request.user.is_authenticated %}
<a href="{% url 'account_logout' %}">Sign Out</a>
{% else %}
<a href="{% url 'account_login' %}" class="login-popup">Login</a> <a href="{% url 'account_signup' %}" class="login-popup">Register</a>
{% endif %}
它们表明用户未经过身份验证。
非常感谢您的所有帮助。
编辑:我尝试更改登录重定向以确定是否实际上登录了用户并将其发送到索引,但事实并非如此。即使我将登录重定向更改为不同的页面,确认仍然会将它们发送到索引。