Firebase Authenticationにおける認証・認可の手順
1. Google CloudでOAuthクライアントIDを取得
Google Cloud ConsoleでOAuth2.0クライアント作成、リダイレクトURI作成。
クライアントID、クライアントシークレット取得
2. Google Sign-Inボタンで認証
Google API Clientライブラリを利用して、「Googleで認証」といったボタンを作成します。
上記ボタンがユーザーによって押されると、ライブラリ依存の認証画面が出現します。
また、ボタンが押されるときにクライアントIDを与える必要があります。(アプリを識別するためです)
ユーザーが認証を許可すると、GoogleのサーバーからリダイレクトURIにリダイレクトされ、そこでコード(authorization code)を受け取ります。
3. 認証コードを用いてアクセストークンとid_tokenを取得
リダイレクト先で取得した認証コードを使って、Googleのトークンエンドポイントにリクエストを送信し、アクセストークンとid_tokenを取得します。この時にクライアントシークレットが必要となります(バックエンドでのリクエスト時に使用)。
4. 取得したid_tokenをFirebaseで使用してログイン
取得したid_tokenをFirebase AuthenticationのsignInWithCredentialメソッドに渡して、ユーザーをFirebaseにログインさせます。
まとめ
Firebase Authenticationで利用するid_tokenを取得するまでの流れを紹介した。
OAuth認可の流れとしては、ユーザーが認可を許可し、認可コードがリダイレクトURIに返され、それを使ってアクセストークンとIDトークンを取得し、そのIDトークンを使ってFirebaseにログインさせるという流れになります。この流れは、開発者側での実装が必要な部分と、Google側で自動的に処理される部分があります。