# @canonical/macaroon-bakery 中文文档

规范地址：https://npmcn.com/package/%40canonical/macaroon-bakery/

版本：1\.3\.2
npm 元数据更新时间：2026-09-09T10:46:42.276Z
中文译文更新时间：2026-11-09T01:33:38.125Z
软件包许可：LGPL-3\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40canonical/macaroon-bakery
原文对照：https://npmcn.com/package/%40canonical/macaroon-bakery/?lang=original
项目主页：https://github.com/juju/bakeryjs#readme
源码仓库：https://github.com/juju/bakeryjs

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

- 包体积（解压后）：2.3 MB，8 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2019-06-20T20:16:37.841Z
- 最新版本发布：2023-01-06T08:16:47.842Z
- 近 30 天下载量：8180（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：10（近 12 个月 0 个）

## 中文简介

执行 Macaroon 意识网络请求

## 安装

```sh
npm install @canonical/macaroon-bakery
```

也可以使用：`pnpm add @canonical/macaroon-bakery`、`yarn add @canonical/macaroon-bakery`、`bun add @canonical/macaroon-bakery`

## README

[![view on npm](http://img.shields.io/npm/v/@canonical/macaroon-bakery)](https://www.npmjs.org/package/@canonical/macaroon-bakery) [![npm module downloads](http://img.shields.io/npm/dt/@canonical/macaroon-bakery.svg)](https://www.npmjs.org/package/@canonical/macaroon-bakery)

# 面包师

# API 参考

面包师.

**示例**

```js
import { Bakery } from "@canonical/macaroon-bakery";
const bakery = new Bakery();

bakery.get(url, headers, callback);
```

-   [面包师](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs)
    -   [~贝克利](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery)
        -   [新贝克( 配置)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-new_module_bakeryjs..Bakery_new)
        -   [.send request(url,方法,标题,正文,调回)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+sendRequest) ⇒ `Object`
        -   [.get () (中文(简体) )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+get)
        -   [.去除( )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+delete)
        -   [后( )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+post)
        -   [.put () (中文(简体) )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+put)
        -   [.patch () (中文(简体) )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+patch)
        -   [.放行(macaroon, 关于成功, 关于失败)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+discharge)
    -   [~ BakeryStorage 页面存档备份,存于互联网档案馆](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage)
        -   [新面包店( 商店, 配置)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-new_module_bakeryjs..BakeryStorage_new)
        -   [.get(键)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage+get) ⇒ `String`
        -   [. set( 键、 值、 回调)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage+set)
        -   [清晰( )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage+clear)
    -   [~ 在记忆中](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..InMemoryStore)
    -   [~ 序列化( 巨型)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..serialize) ⇒ `string`
    -   [~去序列化( 序列化)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..deserialize) ⇒ `Array`

### 面包师面包店

实施马卡龙面包店.

面包店执行购买和放出马卡龙的程序 超过HTTP.

**仁爱**: 内级 [`bakeryjs`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs)

-   [~贝克利](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery)
    -   [新贝克( 配置)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-new_module_bakeryjs..Bakery_new)
    -   [.send request(url,方法,标题,正文,调回)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+sendRequest) ⇒ `Object`
    -   [.get () (中文(简体) )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+get)
    -   [.去除( )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+delete)
    -   [后( )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+post)
    -   [.put () (中文(简体) )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+put)
    -   [.patch () (中文(简体) )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+patch)
    -   [.放行(macaroon, 关于成功, 关于失败)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery+discharge)

#### 新贝克( 配置)

以给定的参数初始化一个马卡龙面包店.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 配置 | `Object` | 可选配置. |
| 配置( O) 成绩 | `function` | 当请求完成时调用函数. |
| 配置. protocolVersion 软件 | `number` | 面包店应该使用的马卡龙协议版本. |
| 配置. 存储 | `function` | 用来活化马卡龙的存储器 它必须实施以下接口: |
| 配置. storage. get | `function` | 获取(关键) - > 值. |
| 配置 . storage. set | `function` | 设置( 键、 值、 调回 ): 当设置操作完成时, 调回没有参数。 如果不提供,则默认为使用内存存储器的 BakeyStorage . |
| 配置. 访问页面 | `function` | 用于在需要时访问身份提供者页面的函数,默认打开弹出窗口。 它收到一个错误对象. |
| (原始内容存档于2017-10-21). config. visitPage. 资讯 | `Object` | 含有访问处理相关信息的对象. |
| (原始内容存档于2017-10-21). config. visitPage. 资讯. 等一等 等一等 | `String` | 等IdM出院的url. |
| (原始内容存档于2017-10-21). config. visitPage. 资讯. 访问Url | `String` | 访问的url 认证与IDM. |
| 朱朱贵 | `function` | 一个可选值,指定用于对IDm进行认证的方法。 用于非交互式认证情景. |
| 配置. send 请求 | `function` | a 用于制作 XHR HTTP 请求的函数,其签名如下: func(路径、方法、头条、正体、证书、召回) - > xhr。 默认使用内部函数。 这主要用于测试. |

#### 面包店.send 请求(url,方法,头条,身体,召回) QQ `Object`

用给定的 HTTP 方法向给定的 URL 发送 HTTP 请求,页眉 还有身体 给定的回调在 请求完成.

**仁爱**: 实例方法 [`Bakery`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery)  
**回返**数字 : `Object` - XHR案例.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| url 密码 | `String` | 发送请求的 URL . |
| 方法 | `String` | HTTP方法,如"得到"或"POST". |
| 页眉 | `Object` | 请求中必须包含的标题 。 请注意,面包店特定头部在内部自动添加. |
| 机构 | `String` | 请求机构如果适用,或无效. |
| 回调 | `function` | 远程 URL 回复时调用的一个函数 。 它收到一股Tuple (error,反应. 如果请求成功, 错误无效 . |

#### 面包店.get( )

将 HTTP 请求发送到给定的 URL . 给定的回调在请求时收到错误和回复 完成 。 .

```
See the "sendRequest" method above for a description of the parameters.
```

**仁爱**: 实例方法 [`Bakery`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery)  

#### 面包店.delete()

向给定的 URL 发送 HTTP DELETE 请求, 并使用给定的标题 躯体。 给定的回调在 请求完成.

```
See the "sendRequest" method above for a description of the parameters.
```

**仁爱**: 实例方法 [`Bakery`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery)  

#### 面包店. post ()

将 HTTP POST 请求与给定标题一起发送到给定的 URL,并 躯体。 给定的回调在 请求完成.

```
See the "sendRequest" method above for a description of the parameters.
```

**仁爱**: 实例方法 [`Bakery`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery)  

#### 面包店.put( )

向给定的 URL 发送 HTTP PUT 请求 躯体。 给定的回调在 请求完成.

```
See the "sendRequest" method above for a description of the parameters.
```

**仁爱**: 实例方法 [`Bakery`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery)  

#### 面包店. patch( )

向给定的 URL 发送 HTTP PATCH 请求,并带有给定的标题和 躯体。 给定的回调在 请求完成.

```
See the "sendRequest" method above for a description of the parameters.
```

**仁爱**: 实例方法 [`Bakery`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery)  

#### 面包店. 发售(macaroon, 关于成功, 关于失败)

解除给定的马卡龙。 获得任何第三方的排放.

**仁爱**: 实例方法 [`Bakery`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..Bakery)

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 马卡龙 | `Object` | 解码出院的马卡龙. |
| 成功时 | `function` | 如果放出成功,则称为函数 。 它接收由此产生的马卡龙阵列. |
| 失败 | `function` | 如果卸货失败, 将调用函数 。 它收到一个错误消息 . |

### 面包店店店铺

马卡龙面包店的仓库.

贮藏被用来活化马卡龙.

**仁爱**: 内级 [`bakeryjs`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs)

-   [~ BakeryStorage 页面存档备份,存于互联网档案馆](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage)
    -   [新面包店( 商店, 配置)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-new_module_bakeryjs..BakeryStorage_new)
    -   [.get(键)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage+get) ⇒ `String`
    -   [. set( 键、 值、 回调)](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage+set)
    -   [清晰( )](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage+clear)

#### 新面包店( 商店, 配置)

初始化一个面包店存储器,并配有给定的下架商店和params.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 存储 | `Object` | 存储对象执行以下接口: - 获得项目( 关键) - > 值; - 设置项目( 关键, 值); - 清除( ) . |
| 配置 | `Object` | 可选配置. |
| 配置. 初始 | `Object` | 最初必须包含的密钥/值对地图 |
| 配置服务 | `Object` | 一个服务名称的地图(如"charmstore"或"terms")到它们相应的API端点的基础URL. 用于简化并减少作为存储密钥传递的URL. |
| 配置. charmstoreCookieSetter 软件 | `function` | 用于将马卡龙注册到魅力商店服务的功能。 该函数接受一个值和一个回调,它接收一个错误和一个响应. |

#### 面包店Storage.get(钥匙) QQ `String`

获取并返回所提供密钥的值.

**仁爱**: 实例方法 [`BakeryStorage`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage)  
**回返**数字 : `String` - 相应的值,通常是一个被序列化的马卡龙.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 键 | `String` | 存储密钥,通常为URL. |

#### 面包店 Storage. set( 钥匙、 值、 回调)

在给定的存储密钥中存储给定的值 .

```
Call the callback when done.
```

**仁爱**: 实例方法 [`BakeryStorage`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage)

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 键 | `String` | 存储密钥,通常为URL. |
| 价值 | `String` | 值,通常为被序列化的马卡龙. |
| 回调 | `function` | 当值被正确存储时调用而无需参数的函数 . |

#### 面包店Storage. clear ()

从存储中删除所有密钥/ 值对 .

**仁爱**: 实例方法 [`BakeryStorage`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs..BakeryStorage)  

### 面包店 纪念店

面包店的内饰店.

**仁爱**: 内级 [`bakeryjs`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs)  

### 面包师~串行化(macaroons)~~ `string`

将给定的马卡龙序列化.

**仁爱**: 内部方法 [`bakeryjs`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs)  
**回返**数字 : `string` - 由此产生的串行.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| ma | `Array` | Ma所要序出. |

### 面包师(面包师) 去序化(序列化) `Array`

将给定的系列马卡龙去序列化.

**仁爱**: 内部方法 [`bakeryjs`](https://npmcn.com/package/%40canonical/macaroon-bakery/#readme-module_bakeryjs)  
**回返**数字 : `Array` - 由此产生的马卡龙切片.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| 序列化 | `string` | 连环马先蒿. |

* * *

## 常见问题

### @canonical/macaroon-bakery 是什么？

执行 Macaroon 意识网络请求

### 如何安装 @canonical/macaroon-bakery？

在项目目录运行 npm install @canonical/macaroon-bakery，或使用 pnpm add / yarn add / bun add。

### @canonical/macaroon-bakery 支持 TypeScript 吗？

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

### @canonical/macaroon-bakery 支持 ESM 还是 CommonJS？

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

### @canonical/macaroon-bakery 可以商用吗？

@canonical/macaroon-bakery 使用 LGPL-3\.0 许可。弱 Copyleft：作为库被调用时通常不要求开源你自己的代码，但修改库本身需以 LGPL 开源；前端打包合并后的适用边界存在不同理解。以上为概括，不构成法律意见，请以许可原文为准。

### @canonical/macaroon-bakery 的下载量有多少？

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

### @canonical/macaroon-bakery 还在维护吗？

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

