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