Google Plus iOS SDK未刷新过期令牌

时间:2015-04-18 16:49:05

标签: ios iphone sdk token

我有一个问题,可能有一个如此简单的解决方案,我无法看到它。

我将Google Plus iOS SDK安装到我的应用程序中,让我的应用程序与Google一起运行非常好。

Google Plus iOS SDK

但是,一小时后,令牌即将到期,我找不到续订的方法。

- (void)renewGoogleToken {
    GPPSignIn *gppSignIn                        = [GPPSignIn sharedInstance];
    gppSignIn.shouldFetchGooglePlusUser         = YES;
    gppSignIn.shouldFetchGoogleUserEmail        = YES;
    gppSignIn.clientID                          = [DSUtils getGoogleClientID];
    gppSignIn.scopes                            = @[@"https://www.googleapis.com/auth/plus.login",
                                                @"https://www.googleapis.com/auth/calendar"];
    gppSignIn.delegate                          = self;

    BOOL success                                = [gppSignIn trySilentAuthentication];  }

当我想使用Google+登录时,我最初会调用此方法。一小时后,当令牌即将到期时,我再次调用此方法,但我收到相同的令牌,即将过期。

有人可以帮我吗?我在谷歌上搜索过强烈,但找不到解决方案。 SDK文档没有说明更新,这很奇怪。令牌会自动刷新吗?

请帮忙, 感谢。

1 个答案:

答案 0 :(得分:3)

您获得的对象是GTMOAuth2Authentication。如果在常规Google服务请求中使用,则应根据需要自动刷新。但是,如果您需要强制刷新,则可以请求nil请求的授权:

[auth authorizeRequest:nil
          delegate:self     
 didFinishSelector:@selector(authentication:request:finishedWithError:)];

或使用块

[auth authorizeRequest:nil 
 completionHandler:^(NSError *error) { //...
}];