2016-05-23 5 views
1

私のAndroidアプリにGoogle Sign-Inを統合したいのですが、ちょっと混乱します。 GoogleSignInAccountからIDトークンを受け取ったら、それをデバイスに保存し、すべての要求を認証トークンとしてサーバーに送信する必要がありますか?あるいは、IDトークンを一度送信してから、サーバー上に他の認証トークンを生成し、デバイスに送信し、デバイスに保存して、認証トークンとして使用するなどの方法があります。 IDトークンを送るのは時間がかかり、サーバー側の完全性検証にも時間がかかるため、毎回IDトークンを送信するのはコストがかかるので、私は尋ねています。Google Sign-in認証

+0

私はまだ答えがありません。私のアプリがIDトークンをサーバーに送信すると、サーバーはIDトークンを確認し、実際のGoogleユーザーIDを取得します。私のアプリからサーバーへの次のリクエストを認証するには?サーバーは、どのユーザーが要求を行っているかをどのように知っていますか? – Salivan

+1

新しい認証システムを構築しているか、Google Sign-Inを既存の認証システムに追加していますか?既存のシステムの場合は、現在のセッション管理を使用します。新しいシステムの場合は、Firebase Authを使用してセッション管理を行い、電子メール/ Facebook/Google Sign-Inを簡単に設定できます:https://www.firebase.com/docs/web/guide/ user-auth.html –

+0

Firebaseをご利用いただきありがとうございます。私は間違いなくそれをチェックします。 – Salivan

答えて

1

あなたはauthentictaionトークンをサーバーに送信する必要があります。サーバー側から一意のIDが生成され、それをアプリケーション全体で使用します。

+0

ユニークなIDは何から生成されますか?私?そして、それをアプリに戻し、それをデバイスに保存し、すべてのリクエストでサーバーに送信します。はい? – Salivan

0

認証トークンをサーバーに送信しないでください。どうして?認証トークンは短期間であり、しばらくするとトークンが期限切れになるとGoogleによる検証が失敗するためです。問題は、Googleが認証トークンを再生成するために使用できるリフレッシュトークンに関するドキュメントを提供していないことです。

サーバーキャッシュにいくつかのトークンを格納していると仮定すると、Firebase AuthはトークンIDの確認に役立ち、フード内のリフレッシュトークンを使用して再生成します。さらにクライアント上では、FirebaseAuth.getInstance().getCurrentUser().getToken()タスクの結果をサーバーに送信する必要があります。このトークン、またはこれを使用して生成された別のトークンは、安全にキャッシュできます。

私はなぜ Firebase認証here方法 Firebase認証hereを得ました。