AI を使って Auth0 を統合する
AI を使って Auth0 を統合する
Claude Code、Cursor、GitHub Copilot などの AI コーディングアシスタントを使用している場合は、agent skills を使って、数分で Auth0 認証を自動的に追加できます。インストール:次に、AI アシスタントに次のように依頼します:AI アシスタントが、Auth0 アプリケーションの作成、認証情報の取得、react-native-auth0 SDK のインストール、Expo プラグインの設定、ログイン / ログアウトフローの実装を自動的に行います。agent skills の詳細なドキュメント →
はじめに
Expoプラグインを設定する
Auth0 プラグインを設定して、ネイティブ iOS および Android の構成を自動的に処理できるようにします。
app.json を更新して、Auth0 プラグインを追加します。app.json
{yourDomain} をご利用の Auth0 ドメインに置き換えます (これは次の手順で取得します) 。customScheme には小文字のみを使用し、特殊文字は含めないでください。この値はコールバック URL の構築に使用され、authorize() メソッドと clearSession() メソッドに渡す必要があります。Auth0アプリケーションを設定する
Expo アプリで使用できるように、Auth0 アプリケーションを作成して設定します。許可するログアウト URL:
- Auth0 Dashboard に移動します
- Applications > Applications > Create Application をクリックします
- ポップアップでアプリ名 (例:
Auth0 Expo Sample) を入力し、アプリの種類としてNativeを選択して Create をクリックします - Application Details ページで Settings タブを開きます
- ドメイン と クライアントID の値を控えます
app.jsonのプラグイン設定にあるdomainの値を、Auth0 のドメインに更新します
{yourDomain} を実際の Auth0 ドメイン (例: dev-abc123.us.auth0.com) に置き換えてください。Allowed Callback URLs は、認証後にユーザーを安全にアプリケーションへ戻すための重要なセキュリティ対策です。一致する URL がない場合、ログイン処理は失敗し、ユーザーはアプリにアクセスできず、代わりに Auth0 のエラーページが表示されます。Allowed Logout URLs は、サインアウト時にシームレスなユーザー体験を提供するために不可欠です。一致する URL がない場合、ログアウト後にユーザーはアプリケーションへリダイレクトされず、代わりに汎用的な Auth0 ページが表示されます。コールバック URL の形式は
{customScheme}://{yourDomain}/{platform}/{bundleIdentifier or packageName}/callback です。URL スキームには app.json の customScheme が使用されますが、パスには常に bundleIdentifier (iOS) または package (Android) が含まれ、カスタムスキームは含まれません。customScheme を指定しない場合、SDK は URL スキームとしてデフォルトで {bundleIdentifier}.auth0 / {packageName}.auth0 を使用します。App コンポーネントをセットアップする
選択した実装方法に応じて、メインのアプリコンポーネントを設定します。
- Hooks ベース(Provider あり)
- クラスベース(Provider なし)
App.js の内容を置き換え、アプリケーションを Auth0Provider コンポーネントで囲みます。App.js
{yourDomain} は Auth0 のドメインに、{yourClientId} は Auth0 Dashboard のクライアントIDに置き換えます。authorize() メソッドは、安全なブラウザー (iOS では ASWebAuthenticationSession、Android では Chrome Custom Tabs) で Auth0 の Universal Login を開きます。clearSession() メソッドはユーザーをログアウトし、ブラウザーのセッションと保存された認証情報の両方を消去します。customScheme パラメーターは、app.json のプラグイン設定の値と一致している必要があります。チェックポイントこれで、デバイスまたはエミュレーター上で Auth0 のログイン機能が完全に動作しているはずです。このアプリは安全なブラウザー認証を使用し、認証情報をデバイスのセキュアストレージで自動的に管理します。
トラブルシューティングと高度な設定
よくある問題と解決策
よくある問題と解決策
アクセストークンの取得
アクセストークンの取得
アプリ起動時に認証状態を確認する
アプリ起動時に認証状態を確認する
ユーザーがすでにログインしているかどうかを確認するには、
hasValidCredentials() を使用します。EAS Build を使用した本番環境へのデプロイ
EAS Build を使用した本番環境へのデプロイ
本番ビルドでは、ローカルの開発ビルドではなく EAS Build を使用します。EAS CLI をインストールします。プロジェクトのルートに 本番用にビルドします。Auth0 Dashboard で Android App Links を設定します。
eas.json を作成します。eas.json
本番環境にデプロイする前に
セキュリティを強化するため、HTTPS コールバック URL を使用します。- Settings → Advanced Settings → Device Settings
- アプリの SHA-256 フィンガープリントを追加します
- Xcode で Associated Domains 機能を追加します
- Associated Domains に
webcredentials:{yourDomain}を追加します
- Advanced Settings で OIDC Conformant を有効にします
- トークンの有効期限 を適切に設定します
- 総当たり攻撃対策 を設定します
- 複数のデバイスと OS バージョンでテストします
- ネットワーク障害に対する適切なエラーハンドリングを実装します