通过twitter tastypie python社交身份验证返回403
我正在使用tastypie和python social auth管理我的社交身份验证。 通过执行以下操作,我可以通过facebook进行身份验证:通过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
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上不起作用,有一个问题需要跟踪,我需要设置一个时间来处理。