AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って数分で Auth0 認証を自動的に追加できます。まず、Auth0 agent skills をインストールします。次に、AI アシスタントに次のように依頼します。AI アシスタントは、Auth0 アプリケーションの作成、認証情報の取得、Auth0 React SDK と Capacitor プラグインのインストール、ディープリンクの設定、ネイティブブラウザー統合によるログイン/ログアウト フローの実装を自動的に行います。詳しくは、Auth0 agent skills を参照してください。
はじめに
新しいプロジェクトを作成
Capacitor を使用して新しい Ionic React アプリを作成するプロジェクトを開く
すでに Ionic React アプリがある場合は、Capacitor が有効になっていることを確認してください。
ionic integrations enable capacitor を実行し、続けて npx cap init を実行すると追加できます。Auth0 React SDK と Capacitor プラグインをインストールする
Ionic のスターターtemplateでは 次に、Auth0 SDK と Capacitor プラグインをインストールします。
react@19.0.0 が生成されることがありますが、これは Auth0 React SDK と互換性がありません。まず、サポート対象の React バージョンを使用していることを確認してください。@auth0/auth0-react: Auth0 認証用の React フックとコンポーネントを提供します@capacitor/browser: デバイスのシステムブラウザーでログインページを開きます (iOS では SFSafariViewController、Android では Chrome Custom Tabs)@capacitor/app: Auth0 がアプリにリダイレクトした際のディープリンク callback を処理します
iOS の Capacitor Browser プラグインは
SFSafariViewController を使用しますが、iOS 11 以降ではデバイス上の Safari と cookie を共有しません。そのため、これらのデバイスでは SSO は機能しません。SSO が必要な場合は、ASWebAuthenticationSession を使用する互換性のあるプラグインを使用してください。Auth0アプリを設定する
次に、Auth0テナントで新しいアプリを作成し、プロジェクトに環境変数を追加します。Auth0アプリのセットアップ方法は3つあります。Quick Setupツールを使用する (推奨) 、CLIコマンドを実行する、またはDashboardから手動で設定する方法から選択してください。
この quickstart 全体では、
YOUR_PACKAGE_ID はアプリケーションのパッケージ ID を表します。これは capacitor.config.ts ファイル内の appId フィールドです (例: io.ionic.starter) 。詳しくは、Capacitor の Config スキーマ を参照してください。- クイックセットアップ(推奨)
- CLI
- Dashboard
Auth0 アプリを作成し、適切な設定値があらかじめ入力された また、Application Type が Native に、Token Endpoint Authentication Method が None に設定されていることを確認してください。
.env ファイルをコピーします。アプリを作成したら、Auth0 Dashboard の Settings に移動し、Allowed Callback URLs と Allowed Logout URLs を更新して、YOUR_PACKAGE_ID を実際のパッケージ ID に、YOUR_AUTH0_DOMAIN を Auth0 ドメインに置き換えます。Auth0Provider を設定する
src/main.tsx を開き、App コンポーネントを Auth0Provider でラップします。useRefreshTokens と useRefreshTokensFallback はモバイル向けの設定であり、iOS および Android 上の Ionic アプリでは必須です。src/main.tsx
useRefreshTokens: Ionic を Android または iOS で使用する場合は必須です。モバイルブラウザーではサードパーティ Cookie がブロックされるため、SDK は iframe ベースのサイレント認証ではなくリフレッシュトークンを使用します。useRefreshTokensFallback: モバイルでは利用できない iframe ベースのサイレント認証を SDK が試行しないよう、falseに設定する必要があります。authorizationParams.redirect_uri: OS が Auth0 コールバックをアプリに戻せるように、パッケージ ID をカスタム URL スキームとして使用します。
ログイン、ログアウト、ユーザープロファイル、コールバックハンドラーを作成する
ファイルを作成する次のコードスニペットを追加してください
LoginButton および LogoutButton の openUrl コールバックは、Capacitor の Browser プラグインを使用して、アプリを完全に離れることなく、デバイスのシステムブラウザコンポーネントで Auth0 のログインページおよびログアウトページを開きます。App コンポーネントは appUrlOpen イベントをリッスンします。このイベントは、Auth0 がカスタム URL スキームを使用してアプリにリダイレクトバックする際に発火します。handleRedirectCallback を呼び出して認可コードをトークンと交換し、その後ブラウザを閉じます。デフォルトでは、SDK の
loginWithRedirect メソッドは window.location.href を使用してログインページに移動するため、デバイスのデフォルトのブラウザーアプリが開きます。openUrl を Browser.open を使用するように設定すると、認証フローをアプリ内のコンテキストに維持できるため、ユーザーエクスペリエンスが向上します。チェックポイントこれで、Ionic アプリで Auth0 ログインが完全に動作するようになっているはずです。デバイス上で実行している場合は、「ログイン」をタップするとシステムブラウザーで Auth0 の Universal Login ページが開き、認証後にアプリへリダイレクトされて、ユーザープロファイルが表示されます。
高度な使い方
カスタム URL スキームの設定(iOS と Android)
カスタム URL スキームの設定(iOS と Android)
デバイス上で Auth0 の callback を機能させるには、各プラットフォームでパッケージ ID をカスタム URL スキームとして登録します。iOS — Android —
ios/App/App/Info.plist に追加します。ios/App/App/Info.plist
android/app/src/main/AndroidManifest.xml のメイン <activity> 内に intent filter を追加します。android/app/src/main/AndroidManifest.xml
io.ionic.starter は、capacitor.config.ts の実際の appId に置き換えてください。詳細については、iOS の場合は Defining a Custom URL Scheme、Android の場合は Create Deep Links to App Content を参照してください。
Ionic Router を使用したルートの保護
Ionic Router を使用したルートの保護
Auth0 の認証状態を使用して、Ionic アプリケーション内の特定のルートを保護します。
src/App.tsx
withAuthenticationRequired HOC は、未認証のユーザーが保護されたルートにアクセスしようとすると、自動的に Auth0 のログインページへリダイレクトします。保護されたAPIの呼び出し
保護されたAPIの呼び出し
Auth0Provider を設定して API のオーディエンスを指定し、次に、コンポーネントから認証済みの API 呼び出しを実行します。
getAccessTokenSilently メソッドを使用してバックエンド用のアクセストークンを取得します。src/main.tsx
src/ApiCall.tsx