> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# React Native 認証クイックスタート

> DiditでReact Nativeアプリに認証を導入する手順です。ホスト型ログイン、コールバック検証、安全なセッション管理に加え、本人確認とモニタリングへのリンクも紹介します。

> [!WARNING]
>
> Authenticationは新しい機能です。**@didit-protocol/auth-react-native**はリリースに依存します。配布先の情報、バージョン、呼び出し可能なシグネチャは、ここではまだ確定していません。推測したパッケージをインストールしたり、本人確認SDKをAuthentication SDKとして使用したりしないでください。

## アプリケーションを準備する

1. DiditアプリケーションでAuthenticationが有効になっていることを確認し、コンソールからサインインオリジン(`https://<slug>.auth.didit.me`、サンドボックスの場合は`<slug>.sandbox.auth.didit.me`)をコピーします。
2. アプリケーションとランタイムがサポートする正確なコールバックURLを登録します。アプリリンクの所有権を検証してください。任意のカスタムURLスキームが受け付けられるとは想定しないでください。
3. コールバック処理や保存された認証情報も含め、サンドボックスと本番環境の設定は分けて管理します。
4. 本人確認やモニタリングを連携する前に、安定した人物の対応付けを決めておきます。

コールバックリンクはiOSとAndroidでそれぞれ個別に設定し、テストしてください。Authenticationラッパーは、本人確認を扱う@didit-protocol/sdk-react-nativeとは別のものです。

## ホスト型フローを実装する

`{origin}/sign-in`のURLで、ネイティブのシステム認証ブラウザを開きます。新しいランダムな`state`、S256のPKCEチャレンジ、登録済みの`redirect_uri`を指定してください。verifierはその試行の間だけアプリ内に保持します。基盤となるプロトコルは[JavaScriptクイックスタート](https://docs.didit.me/ja/authentication/quickstarts/javascript.md)で説明しています。ネイティブコードでは、ブラウザのグローバルオブジェクトではなく、プラットフォームの暗号機能とURL処理を使用してください。

コールバック時には、1回限りのコードを`token/`で交換する前に、state、トランザクションの有効期間、コールバック先を検証します。元のverifierと正確なリダイレクトURIを使用してください。ブラウザのキャンセルや閉じる操作は、ログイン成功ではありません。

リフレッシュトークンは、プラットフォームが保護するネイティブストレージに保存してください。プレーンな設定ファイル、アナリティクス、クラッシュログには決して保存しないでください。現在のセッションは、エンドユーザーのBearerトークンを使って`GET session/`で検証します。リフレッシュ処理を直列化し、両方のトークンを同時に置き換え、サインアウト後はユーザー固有の状態を消去してください。リクエストの仕様とリフレッシュトークン再利用時の挙動については、[トークンとJWKS](https://docs.didit.me/ja/authentication/tokens-and-jwks.md)を参照してください。

## ネイティブSDKのリリースプレビュー

ネイティブのAuthenticationモジュールでは、サインイン、現在のセッションへのアクセス、トークンの取得、サインアウト、ステップアップ認証を、デバイスシグナルの自動取得とあわせて提供する予定です。ネイティブのパスキーと保護されたトークンストレージも、このリリースに含まれます。ラッパーAPIは公開済みの各プラットフォームの仕様に従います。設計例から推測したコンストラクター引数やメソッドシグネチャをコピーしないでください。

モジュールがリリースされるまでは、アダプターを無効にしておくか、有効化したアプリケーション向けにレビュー済みのホスト型プロトコル実装を使用してください。パッケージのインストールだけを根拠に、動作するネイティブAuthenticationクイックスタートとして案内しないでください。

## 本人確認とモニタリングを連携する

バックエンドは、認証済みの人物から`vendor_data`を導出します。その人物のために本人確認セッションを作成するか、スコープ付きのモニタリングトークンを発行します。アプリに返すのはセッションの認証情報またはスコープ付きトークンのみです。APIキーはサーバー上に保持します。

本人確認が必要な場合は、[React Native本人確認SDK](https://docs.didit.me/ja/integration/native-sdks/react-native-sdk.md)を使用してください。お使いのプラットフォームでのモニタリング対応については、[SDKによる取引の送信](https://docs.didit.me/ja/transaction-monitoring/sdk-transaction-submission.md)に従ってください。サインイン、本人確認、取引の判定はそれぞれ別のものとして扱ってください。

## 連携を検証する

アプリのコールドスタートからの復帰、バックグラウンドとフォアグラウンドの切り替え、ブラウザのキャンセル、コールバックの不一致、コードの再利用、トークンの期限切れ、同時リフレッシュ、MFA、ログアウト、別のユーザーとしてのサインインをテストしてください。パスキーのリリースが利用可能になったら、対応デバイスでパスキーの登録とサインインをテストしてください。デバイス上でのみ確認できる項目は、対象プラットフォームで実行するまで未検証のままです。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.