Django Allauth Redirect после социальной регистрации

Я хотел бы перенаправить на определенную ссылку после регистрации в социальной сети, как и где мне это сделать? Я могу сделать это для обычной регистрации, но я не могу для социальной регистрации.

2 ответа

В качестве альтернативы вы можете написать свой собственный адаптер социальной учетной записи для обработки перенаправления входа в систему с разных учетных записей, не затрагивая ваши обычные настройки учетной записи, например:

# adapter.py    
from allauth.socialaccount.adapter import DefaultSocialAccountAdapter

class SocialAccountAdapter(DefaultSocialAccountAdapter):
    def get_login_redirect_url(self, request):
        # do your logic here for different social accounts
        ...
        return 'url/to/your/redirection' # or reverse(view) or whatever

# settings.py
SOCIALACCOUNT_ADAPTER = "point.to.adaptor.SocialAccountAdapter"

Отредактировано:

Если вы хотите изменить перенаправление для новой регистрации, вы можете настроить метод save_user адаптера:

class SocialAccountAdapter(DefaultSocialAccountAdapter):
    ...
    def save_user(self, request, sociallogin, form=None):
        super(DefaultSocialAccountAdapter, self).save_user(request, sociallogin, form=form)
        # your logic here... and return redirection afterward
        return redirect(...)

После социальных и нормальных оно должно быть перенаправлено на ваш LOGIN_REDIRECT_URL в настройках. У вас есть этот набор?

Theres также некоторая хорошая информация здесь о пользовательском перенаправлении

Другие вопросы по тегам