Django Allauth Social Login Возврат на страницу входа в систему

В настоящее время я работаю с сервером единого входа, используя django allauth и oauth-toolkit. После этого у меня есть два клиента, первый из которых - общего назначения, а второй - портал поддержки.

Когда человек входит в систему поддержки, у меня есть проверка, чтобы убедиться, что он является пользователем поддержки (на основе некоторых полей в общем представлении в mysql).

Если человек не является членом команды поддержки, я хочу перенаправить его на страницу входа и вывести ошибку. Но при этом я попадаю в исключение, где получаю

У объекта 'HttpResponseRedirect' нет атрибута 'is_existing'

Что касается кода

class AuthAdapter(OAuth2Adapter):

    provider_id = AuthProvider.id

    # Fetched programmatically, must be reachable from container
    access_token_url = '{}:{}/o/token/'.format(settings.AUTH_BASE_URL, settings.AUTH_PORT)
    profile_url = '{}:{}/profile/'.format(settings.AUTH_BASE_URL, settings.AUTH_PORT)

    # Accessed by the user browser, must be reachable by the host
    authorize_url = '{}:{}/o/authorize/'.format(settings.AUTH_BASE_URL, settings.AUTH_PORT)

    def complete_login(self, request, app, token, **kwargs):
        headers = {'Authorization': 'Bearer {0}'.format(token.token)}
        resp = requests.get(self.profile_url, headers=headers)
        extra_data = resp.json()

        from support.users.views import check_support_user
        is_support_user = check_support_user(extra_data['id'], extra_data['username'], extra_data['email'])

        if not is_support_user:
            base_url = reverse("login")
            query_string = urlencode({
                'error': "Invalid"
            })
            url = '{}?{}'.format(base_url, query_string)

            return HttpResponseRedirect(url)

        return self.get_provider().sociallogin_from_response(request, extra_data)

У меня есть еще два адаптера, один для учетной записи и адаптер социальной учетной записи, которые делают другие вещи, но мне интересно, можно ли уйти отсюда и просто заставить перенаправить обратно на логин, без дальнейшей обработки.

Вернуться на верх