このセクションでは、@arcblock/did-connect-react ライブラリ全体で使用される主要なTypeScript型すべてに関する包括的なリファレンスを提供します。これらのデータ構造を理解することは、SessionProviderのようなコンポーネントやuseConnectのようなフックを効果的に使用する上で非常に重要です。
接続タイプ
これらのタイプは、主にDID Connectモーダルの設定や操作時に使用されます。
ConnectProps
これは、useConnectフックのopen関数またはセッションコンテキストのopenDidConnect関数に渡される主要な設定オブジェクトです。これにより、接続フローの動作と外観を広範囲にカスタマイズできます。
- action
string(required) — 接続の主要なアクション。例: 'login'。 - containerEl
Element— 接続モーダルを追加するDOM要素。 - prefix
string(default:/api/did) — DID ConnectサービスのAPIエンドポイントプレフィックス。 - locale
'en' | 'zh'(default:en) — UIで使用される言語。 - popup
boolean(default:false) — trueの場合、接続UIはモーダルの代わりにポップアップウィンドウで表示されます。 - checkInterval
number(default:2000) — セッションステータスをチェックする間隔(ミリ秒)。 - checkTimeout
number(default:300000) — セッションチェックプロセス全体タイムアウト(ミリ秒)(5分)。 - closeTimeout
number(default:2000) — 接続成功後にモーダルを閉じるまでの遅延時間(ミリ秒)。 - extraParams
object(default:{}) — 接続リクエストと共に送信される追加のパラメータ。 - tokenKey
string(default:_t_) — セッショントークンを保存するために使用されるキー。 - encKey
string(default:_ek_) — 暗号化に使用されるキー。 - baseUrl
string(default:'') — APIリクエストのベースURL。 - messages
ConnectMessages— 接続UIに表示されるテキストをカスタマイズするためのオブジェクト。 - autoConnect
boolean(default:true) — trueの場合、保存されたセッションを使用して自動的に接続を試みます。 - forceConnected
boolean | string(default:true) — 接続が確立されたものとして強制的に扱います。 - saveConnect
boolean(default:true) — trueの場合、成功した接続セッションはautoConnectのために保存されます。 - useSocket
boolean(default:true) — trueの場合、リアルタイムのステータス更新にWebSocketを使用します。 - allowWallet
boolean(default:true) — trueの場合、DID Wallet経由での接続を許可します。 - passkeyBehavior
'none' | 'both' | 'only-existing' | 'only-new'(default:true) — 認証プロセス中にパスキーをどのように処理するかを定義します。 - provider
'wallet' | 'auth0' | ''(default:wallet) — 認証プロバイダーを指定します。 - qrcodeSize
number(default:160) — QRコードのサイズ(ピクセル単位)。 - showDownload
boolean(default:true) — trueの場合、DID Walletのダウンロードリンクを表示します。 - webWalletUrl
string(default:https://web.abtwallet.io) — ウェブベースのDID WalletのURL。 - enabledConnectTypes
Array<'web' | 'mobile' | 'auth0' | 'github' | 'apple' | 'google' | 'passkey'>(default:["web", "mobile", "github", "apple", "google", "auth0", "passkey"]) — UIで有効にする接続方法の配列。 - extraContent
any— 接続モーダル内にレンダリングされるカスタムコンテンツ。 - loadingEle
any— 表示するカスタムローディング要素。 - disableSwitchApp
boolean(default:false) — trueの場合、モバイルデバイスでの自動アプリ切り替えを無効にします。 - hideCloseButton
boolean(default:false) — trueの場合、モーダルの閉じるボタンを非表示にします。 - options
object(default:{}) — 追加の設定オプション。- showQuickConnect
boolean(default:true) — trueの場合、保存されたセッションのクイック接続オプションを表示します。
- showQuickConnect
- onRecreateSession
Function— セッションが再作成されたときに実行されるコールバック関数。 - checkFn
() => boolean— 接続ステータスをチェックするためのカスタム関数。 - onSuccess
(result: object) => void— 接続が成功したときに実行されるコールバック関数。 - onError
(error: any) => void— エラーが発生したときに実行されるコールバック関数。 - onClose
Function— 接続モーダルが閉じられたときに実行されるコールバック関数。
ConnectMessages
DID Connect UI内に表示されるテキストをカスタマイズするためのオブジェクト。
- title
string(required) — 接続モーダルのメインタイトル。 - scan
string(required) — QRコードをスキャンするための指示テキスト。 - success
ReactNode(required) — 接続成功時に表示されるメッセージまたはコンポーネント。 - confirm
string— ユーザーにウォレットでのアクションの確認を促すテキスト。 - error
string— 表示するカスタムエラーメッセージ。
OpenDidConnect
この関数型は、高度な要件でDID Connectフローを開くためのシグネチャを定義します。これはしばしばプログレッシブ認証に使用されます。
- params
ConnectProps(required) — 標準の接続プロパティ。 - options
object— 接続モードを制御し、要件を指定するための追加オプション。- openMode
'redirect' | 'window' | 'popup'(default:popup) — DID Connectウィンドウの開き方を決定します。 - requirements
object— セッションの要件を指定します。- login
boolean(default:true) — trueの場合、ユーザーがログインしている必要があります。 - bindWallet
boolean(default:true) — trueの場合、ユーザーがDID Walletアカウントをバインドしている必要があります。 - bindDidSpaces
false | 'read' | 'full'(default:false) — DID Spacesのバインドが必要かどうか、およびどのレベルのアクセスが必要かを指定します。
- login
- baseUrl
string— APIリクエストのベースURL。 - locale
BaseLocale— UIの言語('en' または 'zh')。
- openMode
セッションとユーザーのタイプ
これらのタイプは、SessionProviderによって管理されるユーザーとセッションデータの構造を定義します。
SessionProps
useSessionフックを介してアクセス可能なメインセッションオブジェクト。ユーザーの状態、セッション情報、およびセッションを管理するためのメソッドが含まれています。
- action
string— 現在実行中のアクション(例: 'login')。 - error
string— セッション管理中に発生したエラーメッセージ。 - initialized
boolean— セッションが初期化されている場合はtrue。 - loading
boolean— セッションが現在ローディング状態の場合はtrue。 - open
boolean— DID Connectモーダルが現在開いている場合はtrue。 - walletOS
WalletOS— 接続されたウォレットのオペレーティングシステム('web'、'android'、'ios')。 - user
User— 認証されたユーザーオブジェクト。ユーザーがログインしていない場合は未定義。 - locale
UserLocale— ユーザーの現在のロケール。 - provider
WalletProvider— 現在のセッションで使用されているプロバイダー。 - baseUrl
string— API呼び出しに使用されるベースURL。 - federatedMaster
object— フェデレーションログイングループのマスターサイトに関する情報。 - login
LoginSessionFn— ログインプロセスを開始する関数。 - logout
LogoutSessionFn— ユーザーをログアウトさせる関数。 - switch
Function— 異なるユーザーアカウントを切り替える関数。 - switchDid
CommonSessionFn— ユーザーのアクティブなDIDを切り替える関数。 - autoSwitchDid
Function— DIDを自動的に切り替える関数。 - switchProfile
CommonSessionFn— ユーザープロファイルを切り替える関数。 - switchPassport
CommonSessionFn— 異なるパスポートを切り替える関数。 - bindWallet
CommonSessionFn— ウォレットのバインドプロセスを開始する関数。 - refresh
Function— セッションデータを手動で更新する関数。 - updateConnectedInfo
(data: object) => void— 接続情報を更新する関数。 - openDidConnect
OpenDidConnect— 高度な要件でDID Connectモーダルを開く関数。 - useOAuth
Function— OAuth統合のためのフック。 - OAuthProvider
Function— OAuthコンテキストのプロバイダーコンポーネント。 - OAuthConsumer
Function— OAuthコンテキストのコンシューマーコンポーネント。 - OAuthContext
object— OAuth用のReactコンテキストオブジェクト。 - usePasskey
Function— パスキー統合のためのフック。 - PasskeyProvider
Function— パスキーコンテキストのプロバイダーコンポーネント。 - PasskeyConsumer
Function— パスキーコンテキストのコンシューマーコンポーネント。 - PasskeyContext
object— パスキー用のReactコンテキストオブジェクト。 - useDid
(options: { session: Session }) => void— DID情報を扱うためのユーティリティフック。 - WrapDid
Function— DID機能に関連するラッパーコンポーネント。 - getUserSessions
() => Promise<UserSession[]>— 現在のユーザーのすべてのアクティブなセッションを取得する関数。
User
認証されたユーザーの詳細なプロファイルを表します。
- did
string(required) — ユーザーの分散型識別子(DID)。 - pk
string(required) — ユーザーの公開鍵。 - avatar
string(required) — ユーザーのアバターのURL。 - fullName
string(required) — ユーザーのフルネーム。 - email
string(required) — ユーザーのメールアドレス。 - role
UserRole(required) — アプリケーション内でのユーザーの役割(例: 'guest'、'member'、'admin')。 - locale
UserLocale(required) — ユーザーの優先言語。 - connectedAccounts
ConnectAccount[](required) — ユーザーのDIDに接続されているアカウントのリスト。 - passports
Passport[](required) — ユーザーに関連付けられたパスポートのリスト。 - permissions
any[](required) — ユーザーに付与された権限のリスト。 - didSpace
object— ユーザーのDID Spaceに関する情報。 - approved
boolean(required) — ユーザーが承認されているかどうかを示します。 - remark
string— ユーザーに関するオプションの備考またはメモ。 - createdAt
string(required) — ユーザーアカウントが作成されたときのタイムスタンプ。 - updatedAt
string(required) — ユーザーアカウントが最後に更新されたときのタイムスタンプ。 - firstLoginAt
string— ユーザーの初回ログイン時のタイムスタンプ。 - lastLoginAt
string— ユーザーの最終ログイン時のタイムスタンプ。 - lastLoginIp
string— ユーザーの最終ログイン時のIPアドレス。
UserSession
ユーザーの単一のアクティブなセッションを表し、通常はgetUserSessionsから取得されます。
- id
string(required) — セッションの一意の識別子。 - appName
string(required) — このセッションのアプリケーション名。 - appPid
string(required) — アプリケーションのパスポートID。 - updatedAt
string(required) — セッションが最後に更新されたときのタイムスタンプ。 - userDid
string(required) — このセッションのユーザーのDID。 - visitorId
string(required) — セッションに関連付けられたビジターID。 - extra
object(required) — セッションに関連付けられた追加データ。 - user
SessionUser(required) — セッション用の簡略化されたユーザーオブジェクト。 - passportId
string— このセッションで使用されたパスポートのID。
コアデータ型
これらは、他のさまざまなインターフェースで使用される基本的な文字列共用体型です。
| タイプ | 説明 | 可能な値 |
|---|---|---|
WalletProvider | 認証方法またはプロバイダーを識別します。 | wallet, auth0, apple, github, google, passkey |
WalletOS | DID Walletのオペレーティングシステムを表します。 | web, android, ios, '' (空文字列) |
UserRole | アプリケーション内でのユーザーの役割を定義します。 | guest, member, admin, owner, または任意の string |
BaseLocale | サポートされている言語の基本セット。 | en, zh |
UserLocale | ユーザーのロケール。基本ロケールまたはより具体的なロケールを指定できます。 | en, zh, または任意の string (例: 'en-US') |