リージョン ID
REGION_ID
は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r
は App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。
詳しくは、リージョン ID をご覧ください。
Firebase Authentication を使用するウェブサービスにユーザー ログイン フローを追加します。
本ガイドのこのステップでは、ウェブサービスを更新してユーザーを認証し、認証後にユーザー固有の情報を取得して表示します。このステップでは、サイト リクエスト時間はユーザー固有ではなくグローバルのままであるので注意してください。
始める前に
このガイドでこれまでのステップをすべて完了している場合は、このセクションをスキップできます。それ以外の場合は、次のいずれかを実行してください。
Python 3 アプリのビルドから始めて、ここまでのステップをすべて完了します。
Google Cloud プロジェクトがすでにある場合は、次のようにウェブサービスのコピーをダウンロードして Firebase を追加すれば、これ以降の処理を続行できます。
Git を使用してサンプル アプリケーション リポジトリをダウンロードします。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
または、zip 形式のサンプルをダウンロードして展開します。
前のステップで用意したファイルのコピーがあるディレクトリに移動します。
cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-2
Firebase 認証メソッドを追加する
Firebase は、ウェブサービスのログイン動作を構成するために使用できる JavaScript のメソッドと変数を提供します。このウェブサービスでは、ログアウト関数、ログイン UI を構成する変数、ユーザーがログインまたはログアウトするときの変更を制御する関数を追加します。
認証フローに必要な動作を追加するには、static/script.js
ファイルの現在のイベント リスナー メソッドを次のコードで置き換えます。
ユーザーがログインまたはログアウトしたときに変更される内容を制御する onAuthStateChanged()
メソッドは、ユーザーの ID トークンを Cookie として保存します。この ID トークンは、ユーザーがログインに成功したとき Firebase が自動的に生成する一意のトークンであり、ユーザーを認証するためにサーバーによって使用されます。
トークンを使用するためにウェブサービスを更新する
次に、一意の Firebase ID トークンを使用してサーバーでユーザーを検証してから、ユーザーのデータをユーザーに表示できるようにトークンを復号します。
Firebase ID トークンを使用するには:
main.py
ファイルのroot
メソッドで、トークンを取得、検証、復号します。requirements.txt
ファイルに、必要な依存関係がすべて含まれていることを確認します。
ウェブサービスのテスト
ウェブサービスを仮想環境でローカルに実行してテストします。
プロジェクトのメイン ディレクトリで次のコマンドを実行して、新しい依存関係をインストールし、ウェブサービスを実行します。ローカルテスト用に仮想環境を設定していない場合は、ウェブサービスのテストをご覧ください。
pip install -r requirements.txt python main.py
ウェブサービスを表示するには、ウェブブラウザに次のアドレスを入力します。
http://localhost:8080
ウェブサービスのデプロイ
以上でローカルでの認証を設定できたので、ウェブサービスを App Engine に再デプロイできます。
プロジェクトのルート ディレクトリから次のコマンドを実行します。ここで、app.yaml
ファイルは次の場所にあります。
gcloud app deploy
すべてのトラフィックは、デプロイした新しいバージョンに自動的にルーティングされます。
バージョン管理の詳細については、サービスとバージョンの管理をご覧ください。
サービスの表示
ブラウザを速やかに起動して https://PROJECT_ID.REGION_ID.r.appspot.com
でウェブサービスにアクセスするには、次のコマンドを実行します。
gcloud app browse
次のステップ
以上でユーザー認証の設定が完了しました。次は、ウェブサービスを更新して認証済みユーザーのデータをパーソナライズする方法を学習します。