@arcblock/did-connect

中文文档
3.0.43发布于 2025/08/08Apache-2.0ESM + CJS近 30 天下载 2964

客户端库可与 DOD Connect 通过ArcBlock 工作.

中文使用文档
文档目录8 节
  1. 使用量
  2. 已关闭
  3. 在弹出时显示 DidConnect
  4. 迪德·阿凡达
  5. 按钮
  6. 迪多罗戈
  7. 已安装
  8. 会话管理器

@arcblock/did-connect

客户端库可与 DOD Connect 通过ArcBlock 工作.

使用量

yarn add @arcblock/did-connect

然后说:

import axios from 'axios';

// import each module individually
import DidAddress from '@arcblock/did-connect/lib/Address';
import DidConnect from '@arcblock/did-connect/lib/Connect';
import DidAvatar from '@arcblock/did-connect/lib/Avatar';
import DidButton from '@arcblock/did-connect/lib/Button';
import DidLogo from '@arcblock/did-connect/lib/Logo';
import { SessionProvider, SessionConsumer } from '@arcblock/did-connect/lib/Session';
import SessionManager from '@arcblock/did-connect/lib/SessionManager';

// or use ES6 named imports
import { 
  Address as DidAddress, 
  Connect as DidConnect, 
  Avatar as DidAvatar, 
  Button as DidButton, 
  Logo as DidLogo, 
  Session, 
  SessionManager, 
} from '@arcblock/did-connect/lib';

已关闭

<DidConnect
  popup
  open={open}
  action="login"
  checkFn={axios.get}
  onClose={() => handleOnClose()}
  onSuccess={() => (window.location.href = '/profile')}
  messages={{
    title: 'login',
    scan: 'Scan QR code with DID Wallet',
    confirm: 'Confirm login on your DID Wallet',
    success: 'You have successfully signed in!',
  }}
/>

说明: DidConnect 组件有一个内置的WebWalletSWkeeper实例,该实例将一个钱包iframe嵌入到DOM中,以使网页钱包的服务员能活下来. 当 DidConnect 组件被销毁后,WebWalletSWkeepter 也会被销毁,因此避免像下面这样使用:

{open && (
  <DidConnect
    popup
    action="login"
    ...
  />
)}

在弹出时显示 DidConnect

const [open, setOpen] = React.useState(false);
const handleOnClose = () => {
  // ...
  setOpen(false);
};

...

<button type="button" onClick={() => setOpen(true)}>
  Open DidConnect
</button>

<DidConnect
  popup
  open={open}
  action="login"
  checkFn={axios.get}
  onClose={() => handleOnClose()}
  onSuccess={() => (window.location.href = '/profile')}
  messages={{
    title: 'login',
    scan: 'Scan QR code with DID Wallet',
    confirm: 'Confirm login on your DID Wallet',
    success: 'You have successfully signed in!',
  }}
  webWalletUrl={webWalletUrl}
/>

迪德·阿凡达

<DidAvatar did={userDid} size={256} />

按钮

<ConnectButton size="large" />
<ConnectButton size="medium" />
<ConnectButton size="small" />
<ConnectButton>Custom Text</ConnectButton>
<DidLogo size={32} />

已安装

<DidAddress did={userDid} size={32} />

会话管理器

<SessionProvider serviceHost={get(window, 'blocklet.prefix', '/')} webWalletUrl={webWalletUrl}>
  <SessionConsumer>{(value) => <SessionManager session={value.session} />}</SessionConsumer>
  ...
</SessionProvider>

版本与发布记录

@arcblock/did-connect 共发布 1,027 个版本,首次发布于 2019/11/15;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.0.43latest2025/08/081.2 年前
3.0.422025/08/071.3 年前
3.0.412025/08/061.3 年前
3.0.392025/08/051.3 年前
3.0.382025/08/041.3 年前
3.0.372025/07/311.3 年前

其他发布通道:next → 2.4.68-beta.2。

关于 @arcblock/did-connect 的常见问题

@arcblock/did-connect 是什么?

客户端库可与 DOD Connect 通过ArcBlock 工作.

如何安装 @arcblock/did-connect?

在项目目录运行 npm install @arcblock/did-connect,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@arcblock/ux(^3.0.23)、@blocklet/js-sdk(^1.16.46)、@blocklet/theme(^3.0.23)、@emotion/react(^11.14.0)、@emotion/styled(^11.14.0)、@mui/material(^7.2.0)、react(^19.0.0)、react-dom(^19.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@arcblock/did-connect 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/arcblock__did-connect 是否存在。

@arcblock/did-connect 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@arcblock/did-connect 可以商用吗?

@arcblock/did-connect 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@arcblock/did-connect 的下载量有多少?

根据 npm 官方下载统计,@arcblock/did-connect 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,964 次,日均约 99 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@arcblock/did-connect 还在维护吗?

最新版本 3.0.43 发布于 2025/08/08(1.2 年前);至今共发布 1027 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/11/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。