AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って、数分で Auth0 認証を自動的に追加できます。まず、Auth0 agent skills をインストールします。次に、AI アシスタントに次のように指示します。AI アシスタントが、Auth0 アプリケーションの作成、認証情報の取得、Auth0 Angular SDK と Capacitor プラグインのインストール、ディープリンクの設定、ネイティブブラウザー統合によるログイン/ログアウトフローの実装を自動的に行います。詳細については、Auth0 agent skills を参照してください。
はじめに
Auth0 Angular SDK と Capacitor プラグインをインストール
Capacitor’s Browser プラグインおよび App プラグインと併せて、Auth0 Angular SDK をインストールします:
@capacitor/browser- デバイスのシステムブラウザーで Auth0 のログインページを開きます (iOS では SFSafariViewController、Android では Chrome Custom Tabs)@capacitor/app- 認証後に Auth0 から返されるディープリンクコールバックを処理します
iOS 版の Capacitor Browser プラグインは
SFSafariViewController を使用します。iOS 11 以降では、これは Safari と Cookie を共有しません。そのため、これらのデバイスでは SSO は機能しません。SSO が必要な場合は、ASWebAuthenticationSession を使用する互換性のあるプラグインを使用してください。Auth0 アプリを設定する
次に、Auth0テナントで新しいアプリを作成し、プロジェクトに環境変数を追加します。Auth0アプリをセットアップするには、次の3つの方法があります。Quick Setupツールを使用する (推奨) 、CLIコマンドを実行する、またはDashboardから手動で設定する方法です。
- クイックセットアップ(推奨)
- CLI
- Dashboard
ネイティブ Auth0 アプリを作成し、適切な設定値があらかじめ入力された環境ファイルをコピーします。アプリを作成したら、Auth0 Dashboard の Settings タブで Allowed Callback URLs と Allowed Logout URLs を更新してください。
YOUR_PACKAGE_ID は、capacitor.config.ts の appId (デフォルト: io.ionic.starter) に置き換えます。Allowed Callback URLs と Allowed Logout URLs:Auth0 モジュールを構成する
前の手順で環境ファイルを配置したら、アプリでAuth0モジュールを設定します。
src/main.ts
provideAuth0 の設定には、次が含まれます。useRefreshTokens: true— モバイルでは必須です。Capacitor アプリでは iframe ベースのサイレント認証を使用できないため、セッションの更新にはリフレッシュトークンを使用します。useRefreshTokensFallback: false— モバイルでは必須です。ネイティブアプリでは利用できない iframe ベースのサイレント認証に SDK がフォールバックするのを防ぎます。authorizationParams.redirect_uri— 認証後にアプリへリダイレクトして戻れるよう、アプリのカスタム URL スキームを使用します。
ログイン、ログアウト、Profile コンポーネントを作成する
コンポーネントファイルを作成する各コンポーネントに以下のコードを追加します。次に、Auth0 コールバックを処理するよう App コンポーネントを更新し、ホームページでコンポーネントを使用できるようにします。
- App コンポーネント
- ホームページ
src/app/app.component.ts の内容を次のように置き換えます。src/app/app.component.ts
App Component の
appUrlOpen イベントコールバックは、this.ngZone.run() でラップされています。これは必須です。Capacitor プラグインのコールバックは Angular の zone の外で実行されるため、これがないとログイン後の認証状態の変化を Angular が検出できません。詳しくは、Using Angular with Capacitor を参照してください。チェックポイントこれで、Auth0 のログインページが localhost 上で正常に動作しているはずです
高度な使い方
従来の NgModule 方式を使用する
従来の NgModule 方式を使用する
--type=angular (--type=angular-standalone ではなく) でプロジェクトを作成した場合や、NgModule を使いたい場合は、AuthModule.forRoot で SDK を設定します。src/app/app.module.ts
NgModule を使用する場合は、
inject() ではなくコンストラクター (constructor(public auth: AuthService)) 経由で AuthService を注入してください。テンプレートでは @if の制御フロー構文ではなく、*ngIf="auth.user$ | async as user" を使用します。コンポーネントは standalone: true としてマークするのではなく、モジュール内で宣言する必要があります。カスタム URL スキームの設定
カスタム URL スキームの設定
実機で認証をテストするには、各プラットフォームでカスタム URL スキームを登録します。または Android の場合:
iOS
ios/App/App/Info.plist にカスタム URL スキームを登録します。YOUR_PACKAGE_ID は capacitor.config.ts の appId に置き換えてください。詳細は、Defining a Custom URL Scheme を参照してください。Android
android/app/src/main/AndroidManifest.xml の <activity> タグ内にインテントフィルターを追加します。YOUR_PACKAGE_ID は capacitor.config.ts の appId に置き換えてください。詳細は、Create Deep Links to App Content を参照してください。ビルドしてデバイスで実行する
AuthGuard でルートを保護する
AuthGuard でルートを保護する
認証が必要なルートを保護するには、関数ベースのガードを使用します。未認証のユーザーが保護されたルートに遷移すると、
src/app/app.routes.ts
authGuardFn によって Auth0 のログインページへ自動的にリダイレクトされます。保護された API を呼び出す
保護された API を呼び出す
API 呼び出しにアクセストークンを自動的に付与するように、HTTP インターセプターを設定します。次に、Angular の
src/main.ts
HttpClient を使って API を呼び出します。インターセプターによって Bearer トークンが自動的に付与されます。src/app/api.service.ts
よくある問題と解決策
よくある問題と解決策
次のステップ
- Sample Application — Auth0 統合を含む完全な Ionic Angular サンプルアプリ
- Auth0 Angular SDK Documentation — SDK の完全なリファレンスとサンプル
- Auth0 Dashboard — Auth0 テナントとアプリケーションを設定および管理
- Auth0 Marketplace — Auth0 の機能を拡張するために有効にできる統合を探す