2014-08-30 74 views
1

我遵循Google Identity Toolkit文档中提供的示例Google Identity Toolkit - Quick-start App for iOS。到目前为止,我已完成以下操作:如何使用Google Identity Toolkit在iOS应用中验证用户?

  1. 用户可以按“使用Google登录”并重定向到Google consent screen
  2. 输入正确的Google帐户用户名和密码后,将调用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,所以我相信它是从中推导出来的。
  • statecode似乎是每次随机生成的。

然而[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

iOS客户端有一些错误。

此错误现已在iOS客户端中修复,因此如果遇到同样的问题,请尝试更新。或者阅读我与谷歌here的讨论,以更好地理解Gitkit。

相关问题