Python Flaskアプリケーションにログインを追加する
Auth0を使用すると、アプリケーションに認証を追加して、ユーザープロファイル情報にアクセスすることができます。このガイドでは、Python FlaskアプリケーションにAuthlib SDKを使ってAuth0を統合する方法を説明します。
Auth0のサービスを利用するには、Auth0 Dashboadでセットアップしたアプリケーションが必要です。Auth0アプリケーションは、開発中のプロジェクトに対してどのように認証が動作して欲しいかを構成する場所です。
アプリケーションを構成する
対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。
このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。
代わりに完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。
Callback URLを構成する
Callback URLとは、Auth0がユーザーを認証後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはログイン後にアプリケーションに戻りません。
ログアウトURLを構成する
ログアウトURLとは、Auth0がユーザーをログアウト後にリダイレクトするアプリケーション内URLです。設定されていない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。
プロジェクトディレクトリに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?
次に、プロジェクトのディレクトリに.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
の文字列を生成します。
次に、アプリケーションをセットアップします。プロジェクトディレクトリでserver.py
ファイルを作成します。このファイルにはアプリケーションロジックが含まれます。
アプリケーションに必要なすべてのライブラリーをインポートします。
前の手順で作成した構成.env
ファイルを読み込みます。
Auth0でアプリケーションの認証を処理するためにAuthlibを構成します。AuthlibのOAuth register()
メソッドで使用できる構成オプションの詳細については、Authlibのドキュメント
この例では、アプリケーションにlogin、callback、logout、homeの4つのルートを追加します。
アプリ訪問者が/login
ルートにアクセスすると、アプリケーションはユーザーをAuth0ログインページに遷移します。
ユーザーがAuth0でログインした後、アプリケーションはユーザーを/callback
ルートに遷移します。このルートはユーザーのためにセッションを保存し、戻ってきた時に再度ログインする必要性を回避します。
/logout
ルートは、ユーザーをアプリケーションからサインアウトさせます。アプリのユーザーセッションを消去し、Auth0ログアウトエンドポイントにリダイレクトして、セッションがもう保存されていないことを保証します。その後、アプリケーションはユーザーをホームルートにリダイレクトします。
/
ホームルートは認証されたユーザーの詳細を表示したり、訪問者のサインインを許可したりします。
次に、(render_template()
の呼び出し中に)ホームルートで使用されるテンプレートファイルを作成します。
templates
という名前のプロジェクトフォルダーに新しいサブディレクトリを作成し、ディレクトリにhome.html
を作成します。コンテンツを右から対象ファイルに貼り付けます。
アプリケーションを実行するには、プロジェクトディレクトリのルートに移動し、ターミナルを開きます。次のコマンドを実行します:
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
Sign up for an or to your existing account to integrate directly with your own tenant.