# @arcblock/did-connect 中文文档

规范地址：https://npmcn.com/package/%40arcblock/did-connect/

版本：3\.0\.43
npm 元数据更新时间：2025-08-08T03:52:53.283Z
中文译文更新时间：2026-11-06T15:03:48.019Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40arcblock/did-connect
原文对照：https://npmcn.com/package/%40arcblock/did-connect/?lang=original
项目主页：https://github.com/ArcBlock/ux#readme
源码仓库：https://github.com/ArcBlock/ux

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.3 MB，183 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- 运行依赖：30 个
- 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
- 首次发布：2019-11-15T11:25:02.474Z
- 最新版本发布：2025-08-08T03:52:53.077Z
- 近 30 天下载量：2964（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：1027（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @arcblock/did-connect
```

也可以使用：`pnpm add @arcblock/did-connect`、`yarn add @arcblock/did-connect`、`bun add @arcblock/did-connect`

## README

![@arcblock/did-connect](https://www.arcblock.io/.netlify/functions/badge/?text=did-connect)

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

## 使用量

```shell
yarn add @arcblock/did-connect
```

然后说:

```javascript
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';
```

### 已关闭

```jsx
<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 也会被销毁,因此避免像下面这样使用:

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

### 在弹出时显示 DidConnect

```jsx
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}
/>
```

### 迪德·阿凡达

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

### 按钮

```jsx
<ConnectButton size="large" />
<ConnectButton size="medium" />
<ConnectButton size="small" />
<ConnectButton>Custom Text</ConnectButton>
```

### 迪多罗戈

```jsx
<DidLogo size={32} />
```

### 已安装

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

### 会话管理器

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

## 常见问题

### @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 和提交记录判断。

