auth0-react-native
React NativeまたはExpoで開発するモバイルアプリ(iOS/Android)に認証機能を追加する際に使用します。生体認証をサポートし、react-native-auth0 SDKとネイティブのディープリンクを統合します。
description の原文を見る
Use when adding authentication to React Native or Expo mobile apps (iOS/Android) with biometric support - integrates react-native-auth0 SDK with native deep linking
SKILL.md 本文
Auth0 React Native インテグレーション
react-native-auth0 を使用して React Native および Expo モバイルアプリケーションに認証を追加します。
前提条件
- React Native または Expo アプリケーション
- Auth0 アカウントと Native タイプで設定されたアプリケーション
- Auth0 をまだ設定していない場合は、まず
auth0-quickstartスキルを使用してください
使用しない場合
- Expo 管理ワークフロー - Expo アプリケーション(config プラグイン付き)には
auth0-expoスキルを使用 - React ウェブアプリケーション - SPA(Vite/CRA)には
auth0-reactスキルを使用 - React Server Components - Next.js アプリケーションには
auth0-nextjsを使用 - 非 React ネイティブアプリ - プラットフォーム固有の SDK を使用(iOS は Swift、Android は Kotlin)
- バックエンド API - サーバー言語用の JWT 検証ライブラリを使用
クイックスタートワークフロー
1. SDK をインストール
Expo:
npx expo install react-native-auth0
React Native CLI:
npm install react-native-auth0
npx pod-install # iOS のみ
2. 環境を設定
Auth0 CLI で自動化セットアップを行う場合、完全なスクリプトについては セットアップガイド を参照してください。
手動セットアップの場合:
.env を作成:
AUTH0_DOMAIN=your-tenant.auth0.com
AUTH0_CLIENT_ID=your-client-id
3. ネイティブプラットフォームを設定
iOS - ios/{YourApp}/Info.plist を更新:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>None</string>
<key>CFBundleURLName</key>
<string>auth0</string>
<key>CFBundleURLSchemes</key>
<array>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).auth0</string>
</array>
</dict>
</array>
Android - android/app/src/main/AndroidManifest.xml を更新:
<activity
android:name="com.auth0.android.provider.RedirectActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="YOUR_AUTH0_DOMAIN"
android:pathPrefix="/android/${applicationId}/callback"
android:scheme="${applicationId}" />
</intent-filter>
</activity>
Expo - app.json を更新:
{
"expo": {
"scheme": "your-app-scheme",
"ios": {
"bundleIdentifier": "com.yourcompany.yourapp"
},
"android": {
"package": "com.yourcompany.yourapp"
}
}
}
4. Auth0Provider で認証を追加
アプリケーションを Auth0Provider でラップします:
import React from 'react';
import { Auth0Provider } from 'react-native-auth0';
import App from './App';
export default function Root() {
return (
<Auth0Provider
domain={process.env.AUTH0_DOMAIN}
clientId={process.env.AUTH0_CLIENT_ID}
>
<App />
</Auth0Provider>
);
}
5. useAuth0 フックを使用
import React from 'react';
import { View, Button, Text, ActivityIndicator } from 'react-native';
import { useAuth0 } from 'react-native-auth0';
export default function App() {
const { user, authorize, clearSession, isLoading } = useAuth0();
const login = async () => {
try {
await authorize({
scope: 'openid profile email'
});
} catch (error) {
console.error('Login error:', error);
}
};
const logout = async () => {
try {
await clearSession();
} catch (error) {
console.error('Logout error:', error);
}
};
if (isLoading) {
return <ActivityIndicator />;
}
return (
<View>
{user ? (
<>
<Text>Welcome, {user.name}!</Text>
<Text>{user.email}</Text>
<Button title="Logout" onPress={logout} />
</>
) : (
<Button title="Login" onPress={login} />
)}
</View>
);
}
6. 認証をテスト
Expo:
npx expo start
React Native:
npx react-native run-ios
# または
npx react-native run-android
詳細ドキュメント
セットアップガイド- 自動化セットアップ、ネイティブ設定、ディープリンキングパターンガイド- セキュアストレージ、バイオメトリック認証、トークンリフレッシュAPI リファレンス- 完全な SDK API、メソッド、設定オプション
よくある間違い
| 間違い | 解決方法 |
|---|---|
| Auth0Provider でアプリケーションをラップするのを忘れた | useAuth0() を使用するすべてのコンポーネントは Auth0Provider の子である必要があります |
| ディープリンキングの設定を忘れた | iOS Info.plist と Android AndroidManifest.xml に URL スキームを追加します(ステップ 3 を参照) |
| コールバック URL が一致していない | Auth0 ダッシュボードのコールバック URL がアプリケーションの URL スキーム(例:com.yourapp.auth0://YOUR_DOMAIN/ios/com.yourapp/callback)と一致していることを確認してください |
| インストール後に iOS ビルドが失敗する | npx pod-install を実行してネイティブ依存関係をリンクします |
| Auth0 で SPA タイプとしてアプリケーションを作成した | モバイルアプリケーションはネイティブアプリケーションタイプである必要があります |
| 認証エラーを処理していない | authorize/clearSession 呼び出しを try-catch ブロックで囲みます |
| Android でディープリンクが機能していない | RedirectActivity に android:exported="true" が設定されていることを確認してください |
関連スキル
auth0-quickstart- Auth0 の基本設定auth0-migration- 別の認証プロバイダーから移行auth0-mfa- 多要素認証を追加auth0-cli- ターミナルから Auth0 リソースを管理
クイックリファレンス
コアフック API:
useAuth0()- 認証用のメインフックauthorize()- ログインを開始clearSession()- ログアウトuser- ユーザープロファイルオブジェクトgetCredentials()- API 呼び出し用のトークンを取得isLoading- ローディング状態
一般的なユースケース:
- ログイン/ログアウト → 上記ステップ 5 を参照
- セキュアトークンストレージ →
Auth0Providerで自動 - バイオメトリック認証 →
パターンガイド - トークン付き API 呼び出し →
パターンガイド - トークンリフレッシュ →
getCredentials()で自動
参考資料
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- auth0
- リポジトリ
- auth0/agent-skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/auth0/agent-skills / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。