Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

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

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: auth0 · auth0/agent-skills · ライセンス: Apache-2.0