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

AI を使用して Auth0 を統合する

Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使うことで、数分で Auth0 の認証を自動的に追加できます。 まず、Auth0 agent skills をインストールします。
次に、AI アシスタントに以下のように依頼します。
AI アシスタントは、Auth0 アプリケーションの作成、認証情報の取得、Auth0 Vue SDK と Capacitor プラグインのインストール、ディープリンクの設定、ネイティブブラウザー統合によるログイン/ログアウト フローの実装を自動的に行います。詳しくは、Auth0 agent skills を参照してください。

はじめに

このクイックスタートでは、Capacitor を使用して iOS と Android 上で動作する Ionic Vue アプリケーションに Auth0 の認証を追加する方法を説明します。Auth0 Vue SDK と Capacitor のネイティブブラウザープラグインを使用して、ログイン、ログアウト、ユーザープロフィール機能を備えた安全なモバイルアプリを構築します。
1

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

Capacitor を使用して新しい Ionic Vue プロジェクトを作成する
プロジェクトを開く
@ionic/cli パッケージを使用していることを確認してください (非推奨の ionic パッケージではありません) 。プロジェクト作成時に --npm-client に関するエラーが表示される場合は、CLI を更新してください。
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 で手動設定する方法です。
Auth0 の Native アプリケーションを作成し、認証情報を取得します。アプリを作成したら、次の手順で使用する ドメインクライアントID の値を控えておきます。
Dashboard でコールバック URL とログアウト URL も設定する必要があります。以下の URL 設定を参照してください。
Quick Setup または CLI を使用した場合は、Auth0 Dashboard で対象アプリの Settings タブに移動し、上記の Dashboard タブに記載されているコールバック URL とログアウト URL を設定してください。
4

Auth0 プラグインを設定する

src/main.ts
  • useRefreshTokens: true — モバイルブラウザーではサードパーティ Cookie がブロックされるため、iframe ベースのサイレント認証は機能しません。リフレッシュトークンは /oauth/token エンドポイントを直接呼び出します。
  • useRefreshTokensFallback: false — モバイルでは利用できない iframe ベースのフォールバックを SDK が試行しないようにします。
  • router.isReady().then(...) — SDK が OAuth コールバックを処理する前に Vue Router が完全に初期化されていることを確認し、競合状態を防ぎます。
アプリケーションを閉じて再度開いた後も認証状態を維持するには、cacheLocationlocalstorage に設定することを検討してください。ただし、localstorage にトークンを保存するリスクがある点に注意してください。また、Capacitor アプリではデータが予期せず復元される可能性があるため、localstorage は 一時的 なものとして扱う必要があります。Capacitor ドキュメントのストレージに関するガイダンスも参照してください。
5

認証コンポーネントを作成

コンポーネントファイルを作成する
以下のコードを新しいコンポーネントに追加し、既存のApp.vueHomePage.vueを更新してください。
6

アプリを実行する

まずはブラウザーでテストしてください:
ブラウザで ionic serve を実行する場合、ブラウザではカスタム URL スキームを処理できないため、カスタム URL スキームのリダイレクトは機能しません。ブラウザでテストする場合は、一時的に src/main.tsredirect_urihttp://localhost:8100 に変更し、http://localhost:8100 を Auth0 アプリの Dashboard にある Allowed Callback URLsAllowed Logout URLs に追加してください。ネイティブ向けにビルドする前に、必ずこの変更を元に戻してください。
デバイスまたはシミュレータで実行するには、まずネイティブプラットフォームを追加します。
次に、ビルド、同期、実行を行います。
実行するには、事前に npx cap add でネイティブプラットフォームを追加しておく必要があります。これは各プラットフォームごとに一度だけ行えばかまいません。先に、お使いのプラットフォームのカスタム URL スキームを登録しておいてください。
チェックポイントこれで、Ionic Vue アプリケーションで、ログイン、ログアウト、ユーザープロフィール情報を含む Auth0 のログイン機能が完全に動作するようになっているはずです。

高度な使い方

認証後に OAuth コールバックをアプリに戻せるよう、OS がルーティングできるように、アプリのカスタム URL スキームを登録します。

iOS

ios/App/App/Info.plist にカスタム URL スキームを登録します。
YOUR_PACKAGE_ID は、capacitor.config.tsappId に置き換えてください。詳細は、Defining a Custom URL Scheme を参照してください。

Android

メインの <activity> タグ内にある android/app/src/main/AndroidManifest.xml に intent filter を追加します。
詳細は、Create Deep Links to App Content を参照してください。
ネイティブプロジェクトのファイルを変更した後は、変更を確実に反映するために npx cap sync を実行してください。
認証が必要なルートを保護するには、Auth0 Vue SDK に組み込まれている authGuard を使用します。
src/router/index.ts
authGuard は、未認証のユーザーを Auth0 の Universal Login ページに自動的にリダイレクトします。ログイン後は、最初に要求したルートに戻ります。
API 用のアクセストークンをリクエストするには、createAuth0 の設定で audience パラメーターを構成します。
src/main.ts
次に、コンポーネントで getAccessTokenSilently を使用してトークンを取得し、認証済みの API 呼び出しを行います。
src/components/ApiCall.vue
getAccessTokenSilently メソッドは、キャッシュからトークンを取得するか、必要に応じてリフレッシュトークンを使って自動的に更新します。
<script setup> ではなく、明示的な defineComponent パターンを使いたい場合は、LoginButton コンポーネントは次のようになります。
src/components/LoginButton.vue
defineComponent パターンでは、子コンポーネントを明示的に登録し、setup() 関数から値を返す必要があります。どちらのパターンも Auth0 Vue SDK で完全にサポートされています。