有没有办法通过超级应用程序而不是auth 2.0来授权用户?

时间:2016-02-17 10:46:38

标签: ios uber-api

我们已在我们的应用程序中集成了Uber API。我们直接从我们的应用程序请求uber ride,这需要授权令牌。

我们正在使用以下代码进行授权,

[[NXOAuth2AccountStore sharedStore] requestAccessToAccountWithType:_applicationName
                               withPreparedAuthorizationURLHandler:^(NSURL *preparedURL){

                                   [[UIApplication sharedApplication] openURL:preparedURL];

                               }];

它重定向到safari,用户将从那里输入他/她的凭证。控制返回到应用程序,我们获得授权令牌。一切正常!

我们可以通过其他方式在app或uber应用程序中执行此操作,而不是导航到safari吗?

2 个答案:

答案 0 :(得分:0)

您需要在ssl LSApplicationQueriesSchemes中添加uber并使用uber架构uber://启动url,如果它安装在设备中,它将打开uber应用程序。

答案 1 :(得分:0)

如果你使用Uber Rides iOS SDK提供了一个"那里有Uber按钮"将用户重定向到Uber应用程序,并结合不需要用户登录的API Token / Server Authentication Uber API端点:
  - GET / v1 / products
  - GET / v1 /估计/时间
  - GET / v1 /估计/价格
您无需通过OAuth 2.0进行用户授权和身份验证。

否则,如果您需要使用Uber API代表用户发出请求(即不使用Uber应用),您必须实施授权和身份验证使用OAuth 2.0 protocol flow使用浏览器/ webview时,Uber应用程序无法用于此。

  

在开始之前,您应该确定您的访问级别   应用需求。许多应用程序只使用产品,价格   估计和时间估计端点。对于这些,你只需要   使用server_token通过API令牌访问资源   认证

     

如果您的应用程序代表Uber用户访问资源,   例如,使用Me和User Activity端点,您将需要   按照三条腿OAuth 2.0流程获取   的access_token。