首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在python优步中提供了无效的OAuth 2.0身份验证

在python优步中提供了无效的OAuth 2.0身份验证
EN

Stack Overflow用户
提问于 2016-05-03 10:11:53
回答 1查看 2.5K关注 0票数 2

我正在使用python集成Uber服务器端API。我能够成功地运行授权流并获得访问令牌。

通过接收到的访问令牌,我能够获得用户配置文件、用户历史记录等信息。但是,每当我执行搭便车请求(使用Sandbox )时,就会发生以下错误。

代码语言:javascript
代码运行次数:0
运行
复制
HTTP/1.1 **401 Unauthorized**<br/>
Server: nginx<br/>
Date: Tue, 03 May 2016 09:29:19 GMT<br/>
Content-Type: application/json<br/>
Content-Length: 75<br/>
Connection: keep-alive<br/>
X-Uber-App: uberex-sandbox<br/>
Strict-Transport-Security: max-age=0<br/>
X-Content-Type-Options: nosniff<br/>
X-XSS-Protection: 1; mode=block

{"message":"Invalid OAuth 2.0 credentials provided.","code":"unauthorized"}.

我找不到我到底错过了什么。有人能提出什么可能的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-03 16:39:21

在本例中,“未经授权”的授权错误表示您正在使用的访问令牌不足以满足您试图调用的端点。由于您描述访问令牌对其他端点(如GET /v1/me )有效,但不适用于POST /v1/requests,因此我推测访问令牌没有为request作用域授权。

您可以通过两种方式检查这一点:

  • 令牌交换响应中,列出了已授予的范围。
  • 如果您正在使用优步的v2‘s OAuth,那么您的访问令牌很可能是一个签名的JWT。使用JWT.io上的调试器查看访问令牌已被授权的作用域。

如果访问令牌实际上缺少request作用域,则只需在将用户发送到授权url时显式指定该范围。

例如https://login.uber.com/oauth/v2/authorize?client_id=123&scopes=profile%20request...

请记住,request作用域是一个有限的访问范围,这意味着您可以在开发过程中授权您的OAuth应用程序的所有者和任何注册开发人员。准备好生产时,向Uber提交一份申请,请其批准您完成的应用程序的演示。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37001353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档