【问题标题】:RestKit Oauth 2 Google APIRestKit Oauth 2 谷歌 API
【发布时间】:2012-06-27 08:46:44
【问题描述】:

我正在尝试在 iOS 上使用 RestKit 访问 Google Drive API,但我遇到了 Oauth 身份验证问题。

我一直在关注他们在此主题上的 Wiki 页面: Oauth Support On RestKit

基本上我们这样创建客户端:

oauthClient = [RKClientOAuth clientWithClientID:[Client Id] secret:[Client Secret] delegate:[Your Delegate]];
[oauthClient setAuthorizationCode:[User Authorization Code]];
[oauthClient setAuthorizationURL:[Authorization Endpoint]];
[oauthClient setCallbackURL:[Your application callbackurl]];
[oauthClient validateAuthorizationCode];

我们在方法中的委托上收到一个访问令牌

- (void)OAuthClient:(RKOAuthClient *)client didAcquireAccessToken:(NSString *)token

在这里我们可以创建一个 ObjectManager 来发出请求和所有其他操作

RKObjectManager* objectManager = [RKObjectManager sharedManager];
objectManager.client.baseURL = @"YOUR API URL";
objectManager.client.OAuth2AccessToken = @"YOUR ACCESS TOKEN";
objectManager.client.authenticationType = RKRequestAuthenticationTypeOAuth2;

我遇到了一些问题。

  • 首先是我们如何获取这里需要的授权码:

    [oauthClient setAuthorizationCode:[User Authorization Code]];
    

    我没有遇到客户端 ID、客户端密码、授权端点、回调 URL 和 API URL 的问题,因为它们主要在 google 控制台 API 中提供,但我不知道如何获取。

  • 其次,访问令牌是临时访问令牌还是刷新令牌,因为它们在 google API 中被命名?如果是第一个,如何获取Refresh Token?

我一直在尝试使用 RestKit 来做到这一点,但可能有更好的方法,所以我对其他想法持开放态度。我在 Restkit 中找不到太多关于 Oauth 支持的信息。

先谢谢

【问题讨论】:

  • 您找到解决方案了吗?我在使用 Restkit 时遇到了同样的问题。老实说,我真的很困惑,因为 wiki 听起来我需要在第一个请求中提供授权码。但是据我所知,Oauth2 的工作原理是身份验证服务器使用授权代码响应第一个请求,然后在第二个请求中使用它来最终获取访问令牌。

标签: ios oauth oauth-2.0 restkit google-drive-api


【解决方案1】:

您必须使用 Google ObjectiveC 库才能访问 Google Drive APi。 https://developers.google.com/drive/quickstart-ios

【讨论】:

    【解决方案2】:

    您可以将 Google 的 Objective-C 客户端库用于 Drive API,包括 OAuth 2 登录。

    http://code.google.com/p/google-api-objectivec-client/

    【讨论】:

      【解决方案3】:

      您从您的客户端 ID 和客户端密码开始,将用户定向到资源所有者的授权服务器。授权服务器和用户相互验证,您的应用程序将返回一个授权码。您返回授权服务器并用授权码交换访问令牌。

      如果访问令牌有时间限制,那么当您发现访问令牌已超时时,您将使用刷新令牌来请求新的访问令牌。

      【讨论】:

        猜你喜欢
        • 2021-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-20
        • 2015-02-14
        • 1970-01-01
        • 2017-07-31
        相关资源
        最近更新 更多