AI を使用して Auth0 を統合する
AI を使用して Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使うことで、数分で Auth0 の認証を自動的に追加できます。
まず、Auth0 agent skills をインストールします。次に、AI アシスタントに以下のように依頼します。AI アシスタントは、Auth0 アプリケーションの作成、認証情報の取得、Auth0 Vue SDK と Capacitor プラグインのインストール、ディープリンクの設定、ネイティブブラウザー統合によるログイン/ログアウト フローの実装を自動的に行います。詳しくは、Auth0 agent skills を参照してください。
はじめに
1
新しいプロジェクトを作成する
Capacitor を使用して新しい Ionic Vue プロジェクトを作成するプロジェクトを開く
2
Auth0 Vue SDKとCapacitorプラグインをインストールする
@capacitor/browser は、安全に認証できるよう、Auth0 Universal Login ページをデバイスのシステムブラウザー (iOS では SFSafariViewController、Android では Chrome Custom Tabs) で開きます。@capacitor/app はディープリンクイベントを監視し、ログイン後に Auth0 がリダイレクトでアプリに戻した際の OAuth callback をアプリで処理できるようにします。3
Auth0アプリを設定する
次に、Auth0 テナントに新しいアプリを作成する必要があります。Ionic Capacitor アプリでは、カスタム URL スキームのコールバックを使用する Native アプリケーションタイプを使用します。Auth0 アプリを設定する方法は 3 つあります。Quick Setup ツール (推奨) を使用する方法、CLI コマンドを実行する方法、または Dashboard で手動設定する方法です。
- Quick Setup(推奨)
- CLI
- Dashboard
Auth0 の Native アプリケーションを作成し、認証情報を取得します。アプリを作成したら、次の手順で使用する ドメイン と クライアントID の値を控えておきます。
Dashboard でコールバック URL とログアウト URL も設定する必要があります。以下の URL 設定を参照してください。
4
Auth0 プラグインを設定する
src/main.ts
useRefreshTokens: true— モバイルブラウザーではサードパーティ Cookie がブロックされるため、iframe ベースのサイレント認証は機能しません。リフレッシュトークンは/oauth/tokenエンドポイントを直接呼び出します。useRefreshTokensFallback: false— モバイルでは利用できない iframe ベースのフォールバックを SDK が試行しないようにします。router.isReady().then(...)— SDK が OAuth コールバックを処理する前に Vue Router が完全に初期化されていることを確認し、競合状態を防ぎます。
5
認証コンポーネントを作成
コンポーネントファイルを作成する以下のコードを新しいコンポーネントに追加し、既存の
App.vueとHomePage.vueを更新してください。6
アプリを実行する
まずはブラウザーでテストしてください:デバイスまたはシミュレータで実行するには、まずネイティブプラットフォームを追加します。次に、ビルド、同期、実行を行います。
実行するには、事前に
npx cap add でネイティブプラットフォームを追加しておく必要があります。これは各プラットフォームごとに一度だけ行えばかまいません。先に、お使いのプラットフォームのカスタム URL スキームを登録しておいてください。チェックポイントこれで、Ionic Vue アプリケーションで、ログイン、ログアウト、ユーザープロフィール情報を含む Auth0 のログイン機能が完全に動作するようになっているはずです。
高度な使い方
カスタムURLスキームの設定
カスタムURLスキームの設定
認証後に OAuth コールバックをアプリに戻せるよう、OS がルーティングできるように、アプリのカスタム URL スキームを登録します。詳細は、Create Deep Links to App Content を参照してください。
iOS
ios/App/App/Info.plist にカスタム URL スキームを登録します。YOUR_PACKAGE_ID は、capacitor.config.ts の appId に置き換えてください。詳細は、Defining a Custom URL Scheme を参照してください。Android
メインの<activity> タグ内にある android/app/src/main/AndroidManifest.xml に intent filter を追加します。Vue Router でルートを保護する
Vue Router でルートを保護する
認証が必要なルートを保護するには、Auth0 Vue SDK に組み込まれている
authGuard を使用します。src/router/index.ts
authGuard は、未認証のユーザーを Auth0 の Universal Login ページに自動的にリダイレクトします。ログイン後は、最初に要求したルートに戻ります。保護されたAPIの呼び出し
保護されたAPIの呼び出し
API 用のアクセストークンをリクエストするには、次に、コンポーネントで
createAuth0 の設定で audience パラメーターを構成します。src/main.ts
getAccessTokenSilently を使用してトークンを取得し、認証済みの API 呼び出しを行います。src/components/ApiCall.vue
defineComponent パターンを使用する
defineComponent パターンを使用する
<script setup> ではなく、明示的な defineComponent パターンを使いたい場合は、LoginButton コンポーネントは次のようになります。src/components/LoginButton.vue
defineComponent パターンでは、子コンポーネントを明示的に登録し、setup() 関数から値を返す必要があります。どちらのパターンも Auth0 Vue SDK で完全にサポートされています。