2

我正在尝试制作一个 iOS,它将使用 Uber API 来执行诸如搭车之类的事情。我试图在不使用任何服务器端帮助的情况下在 iPhone 上实现 OAuth 2.0。

那可能吗?有人做过吗?

以下是一些参考资料:

优步认证:https ://developer.uber.com/v1/auth/

Oauth 2.0:https ://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified

4

1 回答 1

7

是的,这是可能的。我能够使用 Uber API 为我的应用程序配置 OAuth2。以下是分步说明:

  1. 在您的应用程序中,使用您的 client_id重定向到https://login.uber.com/oauth/authorizeresponse_type=code并允许用户授权您的应用程序。
  2. 授权成功后,Uber 将重定向到您的redirect_uri(您可以指定任何redirect_uri,包括用于测试目的的localhost:xxxx 等),为您提供一次性验证码,有效期为10 分钟。实现回调以检索此身份验证代码。
  3. 使用步骤 2 中的有效身份验证代码,发出 POST 请求以交换访问令牌。作为一个简单的检查,我建议使用 curl 来确认访问令牌的有效性。例如: curl -F 'client_secret=YOUR_CLIENT_SECRET' \ -F 'client_id=YOUR_CLIENT_ID' \ -F 'grant_type=authorization_code' \ -F 'redirect_uri=YOUR_REDIRECT_URI' \ -F 'code=AUTHORIZATION_CODE' \ https://login.uber.com/oauth/token

  4. 成功交换后,将访问令牌用作后续端点调用的“授权”标头的值。例如: curl -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' 'https://api.uber.com/v1/products?latitude=37.7759792&longitude=-122.41823'

于 2015-04-08T01:00:28.523 回答