Как связать аккаунты с Django rest auth / all auth? - PullRequest
0 голосов
/ 09 сентября 2018

Я использую Django rest-auth для аутентификации и создания учетной записи с Django rest Framework. В настоящее время у меня настроено шесть провайдеров, и я хотел бы начать их подключение.

Непонятно из документации (rest-auth или all-auth), что мне нужно сделать для подключения учетных записей.

Например, если я пытаюсь подключить учетную запись Google к LinkedIn (тот же адрес электронной почты), даже если я отправляю запрос POST на /rest-auth/linkedin/connect/ с правильным токеном доступа для провайдера Google, я получаю ответ 400 поговорка: "non-field-errors": [ "Incorrect value" ].

Я использую JWT для аутентификации и предоставляю правильный токен в заголовке авторизации.

views.py

class GoogleConnect(SocialConnectView):
    adapter_class = GoogleOAuth2Adapter

class LinkedInConnect(SocialConnectView):
    adapter_class = LinkedInOAuth2Adapter

1 Ответ

0 голосов
/ 02 января 2019

Я написал учебник, который должен охватить ваш вопрос. Это должна быть та часть, которую вы ищете.

Вкратце: вы должны написать свой собственный ConnectView, который наследуется от представления rest_auth, как это:

class GoogleCallbackConnect(SocialConnectView):
    """
    Connects the provider's user account to the currently logged in user.
    """
    adapter_class = GoogleOAuth2Adapter
    client_class = OAuth2Client

    @property
    def callback_url(self):
        url = self.adapter_class(self.request).get_callback_url(
            self.request,
            None,
        )
        return url
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...