AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使えば、agent skills を使用して数分で Auth0 の authentication を自動的に追加できます。インストール:次に、AI アシスタントに次のように依頼します:AI アシスタントは、Auth0 アプリケーションの作成、資格情報の取得、auth0_flutter SDK 依存関係の追加、web/index.html の設定、コールバック URL の設定、ログイン/ログアウトフローの実装を自動的に行います。agent skills の完全なドキュメント →
前提条件: 始める前に、以下がインストールされていることを確認してください。
- Flutter 3.0 以降 (Web 向けに設定済み)
- Dart 2.17 以降
- Flutter CLI の基本的な知識
flutter --version を実行します。Flutter の Web アプリがない場合は、次のコマンドで作成してください: flutter create --platforms=web my_appはじめに
1
新しいプロジェクトを作成
このQuickstart向けに、新しいFlutter Webアプリケーションを作成します:プロジェクトを開く:
2
Auth0 Flutter SDKをインストールする
Flutter CLI を使用して、Auth0 Flutter SDK をプロジェクトに追加します。この SDK を使用するには、Auth0 SPA JS ライブラリを Web アプリケーションに読み込む必要があります。閉じる
</body> タグの前に、以下の <script> タグを web/index.html ファイルに追加してください。web/index.html
3
Auth0 Appを設定する
次に、Auth0 テナントに新しいアプリケーションを作成します。Auth0 App は、CLI コマンドを実行して自動的に設定することも、Auth0 Dashboard から手動で設定することもできます。
- CLI
- Dashboard
Auth0 アプリケーションを作成するには、プロジェクトのルートディレクトリで次のコマンドを実行します。
このコマンドにより、以下が実行されます:
- 認証済みかどうかを確認します (必要に応じてログインを求められます)
http://localhost:3000用に設定された Auth0 Single Page Application を作成します- Auth0 ドメインとクライアント ID を Dart 定数として含む
lib/auth_config.dartを生成します
4
SDKを設定する
Auth0 の domain と client ID の値を使って、
Auth0Web クラスのインスタンスを作成します。新しいファイル lib/auth0_service.dart を作成します。lib/auth0_service.dart
5
メインビューを作成
lib/main.dart の内容を以下のコードに置き換えてください:lib/main.dart
onLoad()は、authentication コールバックを処理するためにinitState()内で呼び出されますloginWithRedirect()は、ユーザーを Auth0 の Universal Login ページにリダイレクトしますlogout()はセッションをクリアし、アプリにリダイレクトして戻ります- ユーザープロファイル情報には
credentials.userからアクセスできます
6
アプリを実行する
ポート3000でFlutter Webアプリケーションを実行します:
Flutter 3.24.0 以降では、パフォーマンス向上のために WASM コンパイルをサポートしています。
チェックポイントこれで、http://localhost:3000 で Auth0 のログインページが問題なく動作するようになっているはずです。次の操作を行うと:
- 「Log In」をクリック - Auth0 の Universal Login ページにリダイレクトされます
- 認証を完了 - アプリにリダイレクトされます
- 「View Profile」をクリック - ユーザー情報が表示されます
- 「Log Out」をクリック - アプリと Auth0 の両方からログアウトされます
高度な使い方
保護されたAPIの呼び出し
保護されたAPIの呼び出し
保護されたAPIを呼び出すためのアクセストークンをリクエストするようにSDKを設定します。アクセストークンを使ってAPIを呼び出します。
lib/auth0_service.dart
ログインエラーの処理
ログインエラーの処理
認証の失敗に備えて、適切なエラー処理を実装します。
サイレント認証
サイレント認証
ログインページを表示せずに、ユーザーがすでに認証されているかどうかを確認します。
トラブルシューティング
よくある問題と解決策
よくある問題と解決策
「コールバック URL の不一致」エラー
問題: コールバック URL が Auth0 で設定されているものと一致していません。解決策: コード内のコールバック URL が、Auth0 Dashboard で設定されているものと完全に一致していることを確認してください。- Auth0 Dashboard → アプリケーション → Your App → Settings に移動します
- Allowed Callback URLs に
http://localhost:3000が含まれていることを確認します - URL は完全に一致している必要があります (コード内で末尾のスラッシュを含めていない限り、付けないでください)
認証が機能しない
問題: Login ボタンを押しても何も起こらない、または認証に失敗します。解決策: Auth0 SPA JS スクリプトがweb/index.html で読み込まれていることを確認してください。</body> タグの前に配置する必要があります。ページを再読み込みするとユーザーがログアウトされる
問題: ページを再読み込みするとユーザーセッションが維持されません。解決策:- Auth0 Dashboard の Allowed Web Origins に
http://localhost:3000が含まれていることを確認します - Auth0Web インスタンスの作成時に
cacheLocation: CacheLocation.localStorageを使用します - ウィジェットの
initState()でonLoad()が呼び出されていることを確認します
「Invalid state」エラー
問題: 認証コールバック中に state の不一致が発生しています。解決策:- ブラウザーのキャッシュとローカルストレージを消去します
- login 中に複数のタブを開いていないことを確認します
- コールバック URL が正しいことを確認します
ブラウザーコンソールでの CORS エラー
問題: クロスオリジン リソース共有エラーが発生しています。解決策:- Auth0 Dashboard の Allowed Web Origins に
http://localhost:3000を追加します - ポート 3000 で実行していることを確認します (設定と一致している必要があります)
次のステップ
- Calling 保護された API - アクセストークンを使ってバックエンド API を呼び出す
- Flutter Native App Quickstart - Auth0 を使ってネイティブモバイルアプリを構築する
- Customize Universal Login - ログイン体験をブランドに合わせてカスタマイズする
- Add Social Connections - Google、GitHub などのソーシャルログインを有効にする
- Implement MFA - 多要素認証を追加する
リソース
- Auth0 Flutter SDK GitHub - ソースコードとサンプル
- Flutter Documentation - Flutter について詳しく学ぶ
- Auth0 Community - コミュニティでサポートを受ける