我已按照Google Identity Toolkit
文档Google Identity Toolkit - Quick-start App for iOS中提供的示例进行操作。到现在为止,我已经完成了以下工作:
Google consent screen
。openUrl:
方法。下面的代码说明了openURL:
方法的实现:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// Handle custom scheme redirect here.
return [GITClient handleOpenURL:url
sourceApplication:sourceApplication
annotation:annotation];
}
我看到url
变量包含以下信息:
com.example.myapp:/oauth2callback?state=67688930&code=4/0JGe2u_FjoGrt_W67iJY2zCWRNgd.Yo023UKVHI4fBvB8fYmgkJyhcwpNkAI
com.example.myapp
- 是我的BundleID oauth2callback
- 我不知道它究竟来自哪里。不过我的WidgetURL
是:https://myapp.appspot.com/oauth2callback
,所以我相信它源于此。state
和code
似乎每次都是随机生成的。 然而 [GITClient handleOpenURL:url..
始终返回NO
,这意味着它无法进行身份验证。发生了什么事?
我尝试使用类似的示例应用Google Plus - Quick-start sample app for iOS,使用Google Plus API
代替Identity Toolkit API
。这里一切正常。
下面是工作示例中openURL:
方法的实现:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
BOOL canHandleUrl = [GPPURLHandler handleURL:url
sourceApplication:sourceApplication
annotation:annotation];
return canHandleUrl;
}
此处url
变量包含以下信息:
com.example.myapp:/oauth2callback?state=39225007&code=4/-zN9DyI5QX8Jfcc8ft4SGMNul2AH.MuDLv7lFMdIbPvB8fYmgkJxJ1flMkAI&authuser=0&num_sessions=1&prompt=consent&session_state=41a2c7b449624476165c31cd33e63bac561556a3..ca9c
我注意到存在一些其他信息。但是,如果这有任何重要性,或者只是因为使用了另一个API,我不会这样做。
总结一下我的问题:如何配置Google Identity Toolkit以与iOS配合使用?
答案 0 :(得分:0)
iOS客户端存在一些错误。
现在已在iOS客户端中修复了错误,因此如果您遇到同样的问题,请尝试更新。或者阅读我与Google here的讨论,以便更好地了解Gitkit。