メインコンテンツへスキップ

AI を使って Auth0 を統合する

Claude Code、Cursor、GitHub Copilot のような AI コーディングアシスタントを使用している場合は、agent skills を使って数分で Auth0 認証を自動的に追加できます。インストール:
次に、AI アシスタントに以下のように依頼します:
AI アシスタントが、Auth0 アプリケーションの作成、認証情報の取得、auth0_flutter SDK 依存関係の追加、Android と iOS のコールバックURLの設定、セキュアな認証情報ストレージを使用した Web Auth のログイン/ログアウトの実装を自動的に行います。agent skills の完全なドキュメント →
このガイドでは、Auth0 Flutter SDK を使用して Flutter アプリケーションに Auth0 を統合する方法を説明します。AndroidiOSmacOS プラットフォームでの設定について扱います。
Auth0 Flutter SDK は、WebWindows (ベータ版) もサポートしています。これらのプラットフォーム向けには専用のクイックスタートがあります。

はじめに

1

新しい Flutter プロジェクトを作成する

このクイックスタート向けに、新しい Flutter プロジェクトを作成します。ターミナルで:
  1. ワークスペースのディレクトリに移動します
  2. 次を実行します: flutter create auth0_flutter_sample
  3. プロジェクトディレクトリに移動します: cd auth0_flutter_sample
  4. IDE で開きます:
    • VS Code: code .
    • Android Studio: open -a "Android Studio" .
これにより、最新のプロジェクト構成を使用したモダンな Flutter アプリが作成されます。flutter doctor を実行して、環境が正しく設定されていることを確認してください。
2

Auth0 Flutter SDK をインストールする

Flutter CLI を使用して、プロジェクトに Auth0 Flutter SDK を追加します。
これにより、pubspec.yaml の依存関係に auth0_flutter が追加されます。
pubspec.yaml
Auth0 Flutter SDK を使用するには、Flutter 3.24.0+Dart 3.5.0+ が必要です。flutter doctor を実行して、お使いの環境がこれらの要件を満たしていることを確認してください。
3

Auth0 アプリを設定する

次に、Auth0テナントに新しいアプリを作成し、コールバックURLを設定します。
  1. Auth0 Dashboard に移動します
  2. Applications > Applications > Create Application をクリックします
  3. ポップアップでアプリの名前を入力し、アプリの種類として Native を選択して、Create をクリックします
  4. Application Details ページで Settings タブに切り替えます
  5. DomainClient ID の値を控えておきます。後で必要になります
Settings タブで、対象のプラットフォームに応じて次のURLを設定します。Allowed Callback URLs:
Allowed Logout URLs:上記のコールバック設定と同じURLを Allowed Logout URLs フィールドに追加します。
Allowed Callback URLs は、認証後にユーザーを安全にアプリケーションへ戻すための重要なセキュリティ対策です。一致する URL がない場合、ログイン処理は失敗します。Allowed Logout URLs は、サインアウト後にシームレスなユーザー体験を提供するために重要です。一致する URL がない場合、ログアウト後にユーザーはアプリケーションへリダイレクトされません。たとえば、Auth0 のドメインが example.us.auth0.com で、Android パッケージ名が com.example.myapp の場合、Android のコールバック URL は次のようになります: https://example.us.auth0.com/android/com.example.myapp/callback
重要: コールバック URL 内のパッケージ名 (Android) またはバンドル識別子 (iOS/macOS) が、実際のアプリ識別子と一致していることを確認してください。認証が失敗する場合は、これらの値が同一であることを確認してください。
4

アプリケーションを設定する

認証フローを有効にするには、プラットフォームごとの設定が必要です。対象とする各プラットフォームについて、以下の手順に従ってください。
android/app/build.gradle ファイルを開き、android > defaultConfig 内に以下の manifest placeholders を追加します。
android/app/build.gradle
{yourDomain} は、自分の Auth0 ドメイン (例: example.us.auth0.com) に置き換えてください。https スキームコールバック URL で https スキームを使用するには、アプリケーションに Android app links を設定します。生体認証を使用する場合 (任意) :生体認証を使用する予定がある場合は、MainActivity.kt を更新して FlutterFragmentActivity を継承するようにしてください。
android/app/src/main/kotlin/.../MainActivity.kt
Android: auth0Domain の値が Auth0 ドメインと完全に一致していることを確認してください。認証に失敗する場合は、この値が Auth0 Dashboard に表示されているドメインと同一であることを確認してください。iOS/macOS: Universal Links を使用するには、有料の Apple Developer アカウントと iOS 17.4+/macOS 14.4+ が必要です。古いバージョンでは、SDK は自動的にカスタム URL スキームにフォールバックします。
5

ログインとログアウトを実装する

Universal Login は、アプリケーションに認証を設定する最も簡単な方法です。最適なユーザー体験、高いセキュリティ、そして最も豊富な機能を利用できるため、これを使用することを推奨します。ログインを実装する:Auth0 Flutter SDK をインポートし、Auth0 インスタンスを作成します。
lib/auth_service.dart
ログアウトを実装する:
lib/auth_service.dart
iOS/macOS: useHTTPS: true パラメーターを指定すると、iOS 17.4+ および macOS 14.4+ で Universal Links が有効になり、セキュリティが向上します。Android: カスタムスキームを使用している場合は、そのスキームを login メソッドに渡してください。これにより、SDK がログインページへの遷移とアプリへの復帰を正しく処理できます。
6

ユーザープロフィール情報を表示

ユーザープロフィールは、ユーザーのログイン時に自動的に取得されます。Credentials オブジェクトには user プロパティがあり、IDトークンをデコードして取得されたユーザープロフィール情報がすべて格納されます。
lib/profile_screen.dart
特定のユーザープロフィール フィールドにアクセスするには、ログイン時に適切なスコープを要求します。デフォルトのスコープは openidprofileemailoffline_access です。
7

アプリを実行する

Flutter アプリケーションをビルドして実行します。ターミナルで次を実行します。:
想定されるフロー:
  1. アプリがログイン UI を表示して起動します
  2. ユーザーが Log In をタップ → Auth0 Universal Login を表示するブラウザー/Custom Tab が開きます
  3. ユーザーが認証を完了します
  4. ブラウザーからアプリにリダイレクトされます
  5. ユーザーは認証済みとなり、認証情報が保存されます
チェックポイントこれで、Flutter アプリケーションで Auth0 のログイン機能が完全に動作するようになっているはずです。アプリは安全なブラウザベースの認証を使用し、セッションを永続化するための認証情報を自動的に保存します。

トラブルシューティングと高度な使い方

Auth0 Flutter SDK には、ユーザーの認証情報を安全に保存する組み込みの Credentials Manager が含まれています。モバイルプラットフォームでは、認証情報は暗号化され、プラットフォームのセキュアストレージ (iOS/macOS では Keychain、Android では暗号化された SharedPreferences) に保存されます。

保存済みの認証情報を確認する

ユーザーにログインを求める前に、有効な認証情報がすでにあるかどうかを確認します:
lib/auth_service.dart

保存済みの認証情報を取得する

アクセストークンやユーザー情報にアクセスするために認証情報を取得します。Credentials Manager は、可能であれば有効期限が切れたトークンを自動的に更新します:
lib/auth_service.dart
ログイン後に認証情報を手動で保存する必要はありません。SDK が自動的に処理します。また、トークンを手動で更新する必要もありません。必要に応じて Credentials Manager が更新します。
良好なユーザー体験を提供するために、認証エラーを適切に処理してください。
lib/auth_service.dart

生体認証による認証情報のセキュリティ強化

モバイルで認証情報にアクセスする際に、生体認証を実装します。
lib/secure_auth_service.dart
Android: ステップ 4 で設定したとおり、MainActivityFlutterFragmentActivity を継承している必要があります。iOS/macOS: Info.plistNSFaceIDUsageDescription を追加する必要があります。

カスタムスコープとオーディエンス

API 用に特定のスコープとオーディエンスを要求します。
lib/auth_service.dart

組織 (B2B/Enterprise)

特定の組織内でユーザーを認証します。
lib/auth_service.dart

次のステップ

高度なシナリオ向けの DPoP、生体認証、パスワードレスログインなどをはじめ、さまざまな機能を網羅したコード例については、SDK リポジトリ内の EXAMPLES.md ファイルを参照してください。