2016-03-27 13 views
1

私のGoogleのバックエンドAPIはOauth 2.0を使用しているiOSのクライアントからGoogleクラウドエンドポイントコールを認証済みにする方法:私はそのコードと私のAPIの1呼び出す

func userService() -> GTLServiceUserController{ 
    var service : GTLServiceUserController? = nil 
    if service == nil { 
     service = GTLServiceUserController() 
     service?.retryEnabled = true 
    } 
    return service! 
} 

そして

func callApi() { 
    let service = userService() 
    let query = GTLQueryUserController.queryForGetAllUsers() 
    service.executeQuery(query) { (ticket: GTLServiceTicket!, object: AnyObject!, error: NSError!) -> Void in 
     if(error != nil){ 
      print("Error :\(error.localizedDescription)") 
      return 
     } 

     let resp = object as? GTLUserControllerOperationResponse 
     if(resp != nil){ 
      print(resp) 
     } 
    } 
} 

Iを'を得るThe operation couldn’t be completed. (com.google.appengine.api.oauth.OAuthRequestException: unauthorized)

私はすでにこのarticleを読んでいますが、ユーザーにログインさせたくない代わりに、私のアプリがサービスに資格情報を提示してほしいユーザの介入なしに認証

私はこのapproachを使用したいと思いますが、iOSアプリでどのように行うのかを教えていません。

基本的には、ユーザーの操作やサインインダイアログなしでAPIを正常に呼び出せるようにしたいと考えています。

私は私のプロジェクトでこれらのクラスを持っていることに注意してください:

  • GTMOAuth2Authentication
  • GTMOAuth2SignIn
  • GTMOAuth2ViewControllerTouch

感謝の事前

答えて

1

中にあなたがする必要がない場合OAuth2ログインを介して個々のユーザーを認証すると、他に何かをする必要があり、アプリケーションはAPIを直接呼び出すことができます(「エンドポイントAPIの呼び出し(認証されていない)」のセクションを参照)。

サービスアカウントは、サーバー間のやりとりのためのものであり、個々のユーザーの認証には使用できません。あなたのiOSアプリケーション内にサービスアカウント&キーを埋め込むと、誰でもアプリからそれを抽出してAPIを呼び出すことができるため、セキュリティは追加されません。

+0

答えていただきありがとうございます。サービスアカウントとキーをアプリに埋め込む方法を教えてください。 –

+0

どのように私はGoogleのデフォルトの資格情報を使用できますか? androidのようなGoogleAuthUtilライブラリのiOS版がありますか? –

関連する問題