通过twitter tastypie python社交身份验证返回403

通过twitter tastypie python社交身份验证返回403,twitter,tastypie,python-social-auth,Twitter,Tastypie,Python Social Auth,我正在使用tastypie和python social auth管理我的社交身份验证。 通过执行以下操作,我可以通过facebook进行身份验证: from social.apps.django_app import load_strategy provider = “facebook” access_token = “CAAIkpON595IBADC8CqXgq615wfsls15u6RI23sreqbzntau” strategy = load_strategy(backend=provid

我正在使用tastypie和python social auth管理我的社交身份验证。 通过执行以下操作,我可以通过facebook进行身份验证:

from social.apps.django_app import load_strategy
provider = “facebook”
access_token = “CAAIkpON595IBADC8CqXgq615wfsls15u6RI23sreqbzntau”
strategy = load_strategy(backend=provider)   
user = strategy.backend.do_auth(access_token)
但是,当我尝试使用provider=“twitter”和有效的访问令牌执行相同操作时,在调用“do_auth”方法时,我总是得到403。 我设法转到了twitter api,因此我的凭据是有效的

我是否在路上遗漏了任何步骤?twitter身份验证是否应该与facebook不同


谢谢

问题是我在定义“加载策略”时没有添加“重定向uri”。 最后我得到了以下代码:

# setup redirect uri in order to load strategy
    uri = redirect_uri = "social:complete"
    if uri and not uri.startswith('/'):
        uri = reverse(redirect_uri, args=(backend,))

    # load the strategy
    try:
        strategy = load_strategy(
            request=request, backend=backend,
            redirect_uri=uri, **kwargs
        )
    except MissingBackend:
        raise Http404('Backend not found')

感谢@omab在github发布页面上对此发表评论。

我在下面的示例中使用了register\u by\u access\u令牌方法(我使用django作为Angular应用程序的API)

在示例中,行:

user = request.backend.do_auth(access_token)
没有使用twitter接收的oauth_令牌与twitter一起工作,要使其工作,我必须创建以下access_令牌:

access_token = {
              'oauth_token': auth[1],
              'oauth_token_secret': auth[2]
        }
其中auth[1]和[2]是twitter返回的值

这很奇怪,因为我在任何地方都没有发现这个文档,我只是发现那些错过了SOCIAL_AUTH_TWITTER_KEY和SOCIAL_AUTH_TWITTER_SECRET的人可以使用它


仅供参考:我将其与django rest框架一起使用

您是否检查了redirect_uri属性?还要检查在响应中设置的错误代码。应该会有一些额外的消息来解释问题所在。这个过程目前在Twitter上不起作用,有一个问题需要跟踪,我需要设置一个时间来处理。