# @dokieli/web-access-control 中文文档

规范地址：https://npmcn.com/package/%40dokieli/web-access-control/

版本：1\.1\.0
npm 元数据更新时间：2026-10-09T13:52:03.217Z
中文译文更新时间：2026-11-14T08:22:59.858Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40dokieli/web-access-control
原文对照：https://npmcn.com/package/%40dokieli/web-access-control/?lang=original
项目主页：https://dokieli.github.io/web-access-control/
源码仓库：https://github.com/dokieli/web-access-control

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

- 包体积（解压后）：94.9 kB，42 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：3 个
- 首次发布：2026-08-19T10:40:16.666Z
- 最新版本发布：2026-10-09T13:52:02.841Z
- 近 30 天下载量：2104（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

Web Access Control(WAC)客户端库:WAC-Allow头解释,有效的ACL资源发现,授权查询,以及纯ACL补丁规划. 库允许客户端使用自己的RDF解析器和HTTP堆栈.

## 安装

```sh
npm install @dokieli/web-access-control
```

也可以使用：`pnpm add @dokieli/web-access-control`、`yarn add @dokieli/web-access-control`、`bun add @dokieli/web-access-control`

## README

# dokieli 网络访问控制

[网络访问控制](https://solidproject.org/TR/wac) (WAC)让客户阅读并更改资源访问控制的执行. 支持检查授权规则,规划授权,补丁资源,并允许客户端使用自己的RDF解析器和HTTP堆栈.

-   [行为守则](https://github.com/dokieli/web-access-control/blob/main/CODE-OF-CONDUCT.md)
-   [贡献指南](https://github.com/dokieli/web-access-control/blob/main/CONTRIBUTING.md)
-   [API 参考](https://dokieli.github.io/web-access-control/)
-   [安全政策](https://github.com/dokieli/web-access-control/blob/main/SECURITY.md)

## 许可证

-   源代码根据 [Apache 许可证,2.0版本](http://www.apache.org/licenses/LICENSE-2.0)。 。 。 .
-   除非另有说明,图像和其他媒体资产均根据下列规定获得许可: [4.0 国际](https://creativecommons.org/licenses/by/4.0/)。 。 。 .

## 安装

```sh
npm install @dokieli/web-access-control
```

或者说

```sh
yarn install @dokieli/web-access-control
```

```js
import { findEffectiveACL, isPublic, modesFor } from '@dokieli/web-access-control';

const ctx = await findEffectiveACL('https://example.org/article', { fetch });

modesFor(ctx, 'https://example.org/giuseppina#i');
isPublic(ctx);
```

```js
import { applyPlan, planGrant, planRevoke, Public } from '@dokieli/web-access-control';

const plan = planGrant(ctx, { type: 'agent', iri: 'https://example.org/liliano#i' }, ['Read', 'Write']);

await applyPlan(plan, { fetch });

await applyPlan(planRevoke(ctx, Public), { fetch });
```

## 文档

见 [API 参考](https://dokieli.github.io/web-access-control/) 财务报告和审定财务报表 [实例](https://github.com/dokieli/web-access-control/blob/main/examples/)。 。 。 .

## 特征

-   有效通过 `Link rel="acl"`。 。 。 .
-   口译 `WAC-Allow` 头曰.
-   查询管理资源的授权 .
-   纯粹的补丁规划者,用于授予和取消访问,复制所继承的容器ACL.
-   支持客户端和发行者 [获取条件](https://solid.github.io/web-access-control-spec/#access-conditions)。 。 。 .
-   适应服务器可接受性 `PATCH` 媒体类型(N3补丁或SPARQL 1.1更新).
-   通过注射给呼叫者的认证 `fetch`。 。 。 .
-   将Turtle从盒子中读出,或者通过调用方提供发回RDF/JS四相机进行任何序列化.

## 规格

-   [网络访问控制](https://solidproject.org/TR/wac) 编辑 [编辑草稿](https://solid.github.io/web-access-control-spec/)
-   固体议定书 [N3 补丁](https://solidproject.org/TR/protocol#n3-patch)
-   W3C 战车 [SPARQL 1.1 更新](https://www.w3.org/TR/sparql11-update/)
-   [RDF/JS:数据模型规格](http://rdf.js.org/data-model-spec/)

## 遵约

图书馆执行WAC的东西 [编辑草稿](https://solid.github.io/web-access-control-spec/)数字 :

-   **西非航**:通过 `Link rel=acl`; 确定 [有效的ACL资源](https://solid.github.io/web-access-control-spec/#effective-acl-resource); 数据 [`acl` 词汇](https://www.w3.org/ns/auth/acl)· ; `WAC-Allow` 组合和模式.
-   **N3 补丁**: 每个文档中, 包含一个空白的节点主题, 公式中没有空白的节点, 每个被绑入的变量 `solid:where`。 。 。 .
-   **SPARQL 1.1 更新**编号:地面 `DELETE DATA`编号 :`INSERT DATA`,则 `DELETE {} INSERT {} WHERE {}` 计划执行时的表格 `where` 模式.

规格不动的地方,图书馆有意见. WAC不需要特定的方式来写入ACL资源. 这么说吧, `PATCH` 与 `Accept-Patch` 协商是图书馆的选择 也是尝试 `HEAD` 在此之前 `GET` 为发现。 所有规划人员的行为都是政策:在访问被继承时复制并写,拆分多主体规则,重新编写模式到位,跳过一个补丁无法解决的规则,以及没有模式暗示(`Write` 并不意味着 `Read`) (中文(简体) ).

库根据 RFC 3986 的概念确定母容器 `/`s代表等级结合公约。 其他方法,例如:, `rel="up"`,为 [考虑](https://github.com/dokieli/web-access-control/issues/1)。 。 。 .

[有条件的授权](https://solid.github.io/web-access-control-spec/#access-conditions) 执行正在进行的工作。 其安全考虑塑造了规划者:一个没有条件支持的服务器评价一项授权时,其条件被忽略,给予的超过说明,因此只有在ACL资源发布支持广告时,条件才会自动附加,明确要求将条件写给一个不被拒绝的服务器,被克隆的授权总是保持其条件.

## 捐款

见 [贡献指南](https://npmcn.com/package/%40dokieli/web-access-control/CONTRIBUTING.md) (c) 发展机制、测试和承诺.

## 由

-   这个项目的经费来自: [新网络](https://nlnet.nl/) (2025-09-2026-08) 部分内容为: [NLnet 多基埃利协作组织](https://nlnet.nl/project/Dokieli-Collaborative/)。 。 。 .

## 支持项目

通过赞助项目,帮助项目发展 [开放集体](https://opencollective.com/dokieli/) 或者联系我们.

## 常见问题

### @dokieli/web-access-control 是什么？

Web Access Control\(WAC\)客户端库:WAC-Allow头解释,有效的ACL资源发现,授权查询,以及纯ACL补丁规划\. 库允许客户端使用自己的RDF解析器和HTTP堆栈\.

### 如何安装 @dokieli/web-access-control？

在项目目录运行 npm install @dokieli/web-access-control，或使用 pnpm add / yarn add / bun add。

### @dokieli/web-access-control 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @dokieli/web-access-control 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @dokieli/web-access-control 可以商用吗？

@dokieli/web-access-control 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @dokieli/web-access-control 的下载量有多少？

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

### @dokieli/web-access-control 还在维护吗？

最新版本 1\.1\.0 发布于 2026/10/09（1 个月前）；至今共发布 2 个版本，其中过去 12 个月发布了 2 个；首次发布于 2026/08/19。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

