在 python 中提供了 Uber 身份验证的无效 OAuth 2.0 凭据
Invalid OAuth 2.0 credentials provided Uber Authentication in python
我正在使用 python 集成 Uber 服务器端 API。我能够 运行 授权流程成功并获得访问令牌。
使用收到的访问令牌,我可以获得用户个人资料、用户历史记录等信息。但是每当我发出乘车请求(使用 Sandbox )时,就会发生以下错误。
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"}.
我找不到我到底缺少什么。
谁能建议可能是什么问题?
本例中的授权错误 "unauthorized" 表示您使用的访问令牌不足以用于您尝试调用的端点。因为您描述访问令牌对 GET /v1/me
等其他端点有效,但对 POST /v1/requests
无效,我推测访问令牌未被授权用于 request
范围。
您可以通过两种方式查看:
- 在token exchange response中列出了已授予的范围。
- 如果您使用的是 Uber 的 OAuth v2,您的访问令牌很可能是已签名的 JWT。在 JWT.io 上使用调试器查看您的访问令牌已获得授权的范围。
如果访问令牌实际上缺少 request
范围,您只需在将用户发送到授权 url.
时明确指定该范围
例如https://login.uber.com/oauth/v2/authorize?client_id=123&scopes=profile%20request...
请记住,request
范围是一个有限的访问范围,这意味着您可以在开发过程中授权 OAuth 应用程序的所有者和任何注册开发人员。准备好投入生产后,向 Uber 提交请求以供批准,并附上已完成应用的演示。
我正在使用 python 集成 Uber 服务器端 API。我能够 运行 授权流程成功并获得访问令牌。
使用收到的访问令牌,我可以获得用户个人资料、用户历史记录等信息。但是每当我发出乘车请求(使用 Sandbox )时,就会发生以下错误。
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"}.
我找不到我到底缺少什么。 谁能建议可能是什么问题?
本例中的授权错误 "unauthorized" 表示您使用的访问令牌不足以用于您尝试调用的端点。因为您描述访问令牌对 GET /v1/me
等其他端点有效,但对 POST /v1/requests
无效,我推测访问令牌未被授权用于 request
范围。
您可以通过两种方式查看:
- 在token exchange response中列出了已授予的范围。
- 如果您使用的是 Uber 的 OAuth v2,您的访问令牌很可能是已签名的 JWT。在 JWT.io 上使用调试器查看您的访问令牌已获得授权的范围。
如果访问令牌实际上缺少 request
范围,您只需在将用户发送到授权 url.
例如https://login.uber.com/oauth/v2/authorize?client_id=123&scopes=profile%20request...
请记住,request
范围是一个有限的访问范围,这意味着您可以在开发过程中授权 OAuth 应用程序的所有者和任何注册开发人员。准备好投入生产后,向 Uber 提交请求以供批准,并附上已完成应用的演示。