我从这个例子开始一个演示应用
https://github.com/Christian-Hansen/simple-oauth2
我可以对谷歌进行身份验证并获取AUTH对象。 如果我NSLog auth对象,我可以看到access_token,过期日期和代码,但没有刷新令牌.. 这是正常的吗?原因一段时间后我无法做请求导致我的访问令牌过期.. 我还补充说:
- (void)使用auth.canAuthorize
的awakeFromNib方法我做错了什么? 感谢
答案 0 :(得分:4)
谢谢@grobbins。关键是我需要在请求中添加这些参数:
viewController.signIn.additionalAuthorizationParameters =
[NSDictionary dictionaryWithObjects:[NSArray
arrayWithObjects:@"offline",@"force", nil] forKeys:[NSArray arrayWithObjects:@"access_type",@"approval_prompt", nil]];
希望对那里的人有用! : - )
答案 1 :(得分:0)
使用authenticationWithServiceProvider:登录Google以外的服务时,但对于这些服务,请勿使用Google的令牌网址;使用服务提供商的令牌URL。
登录Google时,请勿创建auth对象;只需调用GTMOAuth2ViewControllerTouch + controllerWithScope:如果用户成功登录,则回调包含auth对象。
将示例应用登录Google服务和非Google服务进行比较,以了解不同的方法。