2014-08-30 68 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。

相關問題