如何使用Django rest auth / all auth连接账户?

4

我正在使用Django rest-auth结合Django rest framework进行认证和账户创建。目前,我已经设置了六个提供商,我想开始连接它们。

从文档(无论是rest-auth还是all-auth)中并不清楚我需要做什么来连接这些账户。

例如,如果我尝试将Google账户连接到LinkedIn账户(相同的电子邮件地址),即使我在正确的Google提供者上提供正确的访问令牌,我也会收到400响应,显示:"non-field-errors": [ "Incorrect value" ]

我正在使用JWT进行认证,并在Authorization头中提供正确的令牌。

views.py

class GoogleConnect(SocialConnectView):
    adapter_class = GoogleOAuth2Adapter

class LinkedInConnect(SocialConnectView):
    adapter_class = LinkedInOAuth2Adapter

我猜这个包就没什么用了。我还不如自己实现它。 - HPJM
1个回答

0
我写了一个教程,应该可以回答你的问题。这里应该是你要找的部分。
简而言之:你必须编写自己的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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接