2017-03-12 4 views
0

RealmとRealm Mobile Platformに基づいて製品を構築しています。私はGoogle Sign Inは私がGoogleをRealm Mobile Platformで使用する方法

extension ApplicationDelegate:GIDSignInDelegate{ 
    public func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?) { 
    let credential = SyncCredentials.google(token: signIn.currentUser.authentication.accessToken) 
    SyncUser.logIn(with: credential, server: authUrl()) { [weak self](user, error) in 

     if let user = user { 
      debugPrint("Signed in!") 
     } else if let error = error as? NSError { 
      debugPrint(error.localizedDescription) 
      //Prints "The provided credentials are invalid" 
     } 
    } 
} 

は、Googleユーザーにあり署名されているレルムモバイルプラットフォームに私のユーザーでログインし、次の使用使用してユーザーを認証しているが、応答がある、「提供された資格情報が無効である」常にありますあまり役に立たない。何か案は?誰かがGoogleにログインしてRealm Mobile Platformで作業していますか?

+0

Googleの認証のためのあなたのセットアップのObjectServerましたか?もっと詳しく教えてください:https://realm.io/docs/realm-object-server/#authentication – Dmitry

+0

はい、アプリのGoogleクライアントIDを追加しました。レルムに必要な資格情報の種類に関する情報はあまりありません。 Webアプリケーション、サービスアカウント..クレデンシャルを作成するには多くの方法があり、レルム文書はあなたが使用すべきものを指導しません。サービスアカウント(サーバーからサーバーへ)では、クライアントシークレットが必要になりますが、レルムの例でこれについては言及していません。 Web Application Oauth Client Credentialsを使用しましたが、動作していないようです。 – SiPe

+1

返信に遅れて申し訳ありませんが、Googleのドキュメントに示されているように 'user.authentication.idToken'ではなく' signIn.currentUser.authentication.accessToken'を使用していることに気付きました。また、問題が見つかった場合、それが関連していたことを分かち合うことができますか、ありがとう! – Dmitry

答えて

0

googleの正しいトークンプロパティを使用していることを確認してください。正しい拡張子は次のようになり

あなたが認証するために使用する必要があるトークンが

user.authentication.idToken 

なく

signIn.currentUser.authentication.accessToken 

です:

extension ApplicationDelegate:GIDSignInDelegate{ 
    public func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?) { 
    let credential = SyncCredentials.google(token: user.authentication.idToken) 
    SyncUser.logIn(with: credential, server: authUrl()) { [weak self](user, error) in 

     if let user = user { 
      debugPrint("Signed in!") 
     } else if let error = error as? NSError { 
      debugPrint(error.localizedDescription) 
      //Prints "The provided credentials are invalid" 
     } 
    } 
} 
関連する問題