Python Flaskアプリケーションにログインを追加する

Auth0を使用すると、アプリケーションに認証を追加して、ユーザープロファイル情報にアクセスすることができます。このガイドでは、Python FlaskアプリケーションにAuthlib SDKを使ってAuth0を統合する方法を説明します。

1

Auth0を構成する

Auth0のサービスを利用するには、Auth0 Dashboadでセットアップしたアプリケーションが必要です。Auth0アプリケーションは、開発中のプロジェクトに対してどのように認証が動作して欲しいかを構成する場所です。

アプリケーションを構成する

対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。

このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。

代わりに完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。

Callback URLを構成する

Callback URLとは、Auth0がユーザーを認証後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはログイン後にアプリケーションに戻りません。

ログアウトURLを構成する

ログアウトURLとは、Auth0がユーザーをログアウト後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。

2

依存関係をインストールする

プロジェクトディレクトリにrequirements.txtファイルを作成します:

# 📁 requirements.txt -----
flask>=2.0.3
python-dotenv>=0.19.2
authlib>=1.0
requests>=2.27.1

Was this helpful?

/

シェルから以下のコマンドを実行し、プロジェクトで依存関係が利用できるようにします:

pip install -r requirements.txt

Was this helpful?

/

3

.envファイルを構成する

次に、プロジェクトのディレクトリに.envファイルを作成します。このファイルにはクライアントキーやその他の構成情報が含まれます。

# 📁 .env -----
AUTH0_CLIENT_ID={yourClientId}
AUTH0_CLIENT_SECRET={yourClientSecret}
AUTH0_DOMAIN={yourDomain}
APP_SECRET_KEY=

Was this helpful?

/

  • シェルからopenssl rand -hex 32を使って、APP_SECRET_KEYの文字列を生成します。

4

アプリケーションをセットアップする

次に、アプリケーションをセットアップします。プロジェクトディレクトリでserver.pyファイルを作成します。このファイルにはアプリケーションロジックが含まれます。

アプリケーションに必要なすべてのライブラリーをインポートします。

前の手順で作成した構成.envファイルを読み込みます。

Auth0でアプリケーションの認証を処理するためにAuthlibを構成します。AuthlibのOAuth register()メソッドで使用できる構成オプションの詳細については、Authlibのドキュメント

5

ルートをセットアップする

この例では、アプリケーションにlogin、callback、logout、homeの4つのルートを追加します。

アプリ訪問者が/loginルートにアクセスすると、アプリケーションはユーザーをAuth0ログインページに遷移します。

ユーザーがAuth0でログインした後、アプリケーションはユーザーを/callbackルートに遷移します。このルートはユーザーのためにセッションを保存し、戻ってきた時に再度ログインする必要性を回避します。

/logoutルートは、ユーザーをアプリケーションからサインアウトさせます。アプリのユーザーセッションを消去し、Auth0ログアウトエンドポイントにリダイレクトして、セッションがもう保存されていないことを保証します。その後、アプリケーションはユーザーをホームルートにリダイレクトします。

/ホームルートは認証されたユーザーの詳細を表示したり、訪問者のサインインを許可したりします。

6

テンプレートを追加する

次に、(render_template()の呼び出し中に)ホームルートで使用されるテンプレートファイルを作成します。

templatesという名前のプロジェクトフォルダーに新しいサブディレクトリを作成し、ディレクトリにhome.htmlを作成します。コンテンツを右から対象ファイルに貼り付けます。

7

アプリケーションを実行する

アプリケーションを実行するには、プロジェクトディレクトリのルートに移動し、ターミナルを開きます。次のコマンドを実行します:

python3 server.py

Was this helpful?

/

checkpoint.header

検証するにはhttp://localhost:3000を訪問します。ログインのためにAuth0へルートするログインボタンがあり、ログイン後アプリケーションに戻るとプロファイル情報を確認できます。

Next Steps

Excellent work! If you made it this far, you should now have login, logout, and user profile information running in your application.

This concludes our quickstart tutorial, but there is so much more to explore. To learn more about what you can do with Auth0, check out:

  • Auth0 Dashboard - Learn how to configure and manage your Auth0 tenant and applications
  • auth0-python SDK - Explore the SDK used in this tutorial more fully
  • Auth0 Marketplace - Discover integrations you can enable to extend Auth0’s functionality

Did it work?

Any suggestion or typo?

Edit on GitHub
Sign Up

Sign up for an or to your existing account to integrate directly with your own tenant.