本节为 @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) — 定义在认证过程中如何处理 Passkey。 - provider
'wallet' | 'auth0' | ''(default:wallet) — 指定认证提供者。 - qrcodeSize
number(default:160) — 二维码的尺寸(以像素为单位)。 - showDownload
boolean(default:true) — 如果为 true,则显示 DID Wallet 的下载链接。 - webWalletUrl
string(default:https://web.abtwallet.io) — 基于 Web 的 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) — 扫描二维码的说明文本。 - 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— 已认证的用户对象。如果没有用户登录,则为 Undefined。 - 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— 用于 Passkey 集成的钩子。 - PasskeyProvider
Function— 用于 Passkey 上下文的提供者组件。 - PasskeyConsumer
Function— 用于 Passkey 上下文的消费者组件。 - PasskeyContext
object— 用于 Passkey 的 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') |