重定向至?next=/accounts/social/connections/in django-allauth



我试图在/account/profile重定向,但在使用django-allauth时却在?next=/accounts/social/connections/重定向。

有什么想法吗?我的settings.py我已经设置LOGIN_REDIRECT_URL = '/',在我的twitter应用程序上,回调url设置为http://127.0.0.1:8000/accounts/twitter/login/callback/

我也尝试过创建适配器:

from django.conf import settings
from allauth.account.adapter import DefaultAccountAdapter
class MyAccountAdapter(DefaultAccountAdapter):
    def get_login_redirect_url(self, request):
        path = "/accounts/{username}/"
        return path.format(username=request.user.username)

内部settings.py:

ACCOUNT_ADAPTER = 'sleep.adapter.MyAccountAdapter'

但它再次将我重定向到:

localhost:8000/accounts/login/?next=/accounts/social/connections/

这里可能会发生一些事情:

1) 社交媒体登录使用settings.pySOCIALACCOUNT_ADAPTER(而非ACCOUNT_ADAPTER)指定的类。因此,使用您当前的settings.py,当您连接到Twitter时,它不会调用sleep.adapter.MyAccountAdapter.get_login_redirect_url()

2) /accounts/social/connections/是名为socialaccount_connections的视图的默认URL。很可能您正试图连接您的Twitter帐户,而不是通过Twitter登录

确保模板中的provider_login_url标记是,而不是使用process="connect"参数。

{% load socialaccount %}
{% providers_media_js %}
<a href="{% provider_login_url "facebook" process="login" method="js_sdk" %}">Login with your Facebook Account</a>

最新更新