# @conduit-client/jwt-manager 中文文档

规范地址：https://npmcn.com/package/%40conduit-client/jwt-manager/

版本：3\.34\.0
npm 元数据更新时间：2026-11-04T21:42:41.641Z
中文译文更新时间：2026-11-10T15:05:53.506Z
软件包许可：SEE LICENSE IN LICENSE\.txt

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

原始 npm 页面：https://www.npmjs.com/package/%40conduit-client/jwt-manager
原文对照：https://npmcn.com/package/%40conduit-client/jwt-manager/?lang=original
项目主页：https://github.com/salesforce-experience-platform-emu/luvio-next#readme
源码仓库：https://github.com/salesforce-experience-platform-emu/luvio-next

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

- 包体积（解压后）：62.3 kB，16 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2025-10-31T16:22:52.580Z
- 最新版本发布：2026-11-04T21:42:41.459Z
- 近 30 天下载量：43471（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：74（近 12 个月 71 个）

## 中文简介

Luvio 下个通用 JWT 管理器

## 安装

```sh
npm install @conduit-client/jwt-manager
```

也可以使用：`pnpm add @conduit-client/jwt-manager`、`yarn add @conduit-client/jwt-manager`、`bun add @conduit-client/jwt-manager`

## README

# JWT 管理员

JWT Manager是一个软件包,简化了应用程序中JWT(JSON Web Tokens)的处理. 它总结了以干净而直截了当的API获取、储存和刷新信使的过程.

## 安装

您可以使用 npm 为您的项目添加 JWT 管理器 :

```bash
npm install -client/jwt-manager
```

## 特征

-   方便地获取和刷新 JWT `getJwt` 财务报告和审定财务报表 `refreshToken` 方法。 。 .
-   用自动刷新处理令牌过期 .
-   用户 `JwtRepository` 用于符号存储和管理.
-   工作与一个 `JwtResolver` 来取回信物.
-   允许额外信息与令牌同时存在 .

## 使用量

以下是在节点应用程序中使用JWT管理器的基本例子:

```javascript
const { JwtManager, JwtRepository, JwtResolver } = require('@conduit-client/jwt-manager');

type EncodedJwtClaims = {
  exp: number;
  username: string;
}
type ExtraInfo = {
  envBaseUri: string;
}
// Your JwtResolver implementation
const jwtResolver: JwtResolver<ExtraInfo> = {
  getJwt(): Promise<{ jwt: string; extraInfo: ExtraInfo }> {
    return fetch(); // resolves the jwt.
  }
};

// Your JwtRepository implementation
const jwtRepository = new JwtRepository<EncodedJwtClaims, ExtraInfo>(
  3, // notifies that the token will expire in 3 seconds
  120, // if exp claim is not provided, the token will expire in 120 seconds.
);

// Create JwtManager instance
const jwtManager = new JwtManager(jwtRepository, jwtResolver);

// Get a JWT
jwtManager.getJwt().then((jwt) => {
  console.log(jwt.token);  // Prints the JWT
  console.log(jwt.decodedInfo);  // Prints the JWT decoded information
  console.log(jwt.extraInfo);  // Prints the JWT extra information
});
```

记住,你需要提供自己的 `JwtResolver` 执行情况 `JwtResolver` 接口。 这个 `JwtResolver` 应提供 `getJwt` 用于在需要时检索新的JWT(以及可选的额外信息)的方法.

## API 参考

该套件输出出两个主要要素: `JwtManager` 班级, `JwtRepository` 类和 `JwtResolver` 财务报告和审定财务报表 `JwtToken` 类型.

### Jwt 管理器

这个 `JwtManager` 类是JWT管理器包中的主要类.

它揭露了下列方法:

-   `getJwt()`: 返回一个JWT。 如果一个符号请求正在执行中, 它会返回此请求的承诺 。 如果当前符号未定义或已过期,则启动一个符号刷新. 否则,它会返回当前符号.
-   `refreshToken()`:刷新JWT. 如果正在更新请求, 它会返回此请求的承诺 。 否则,它开始一个新的更新请求并返回它的承诺.

### JWT 仓库

这个 `JwtRepository` class是JWT(JSON Web Tokens)在JWT管理器包内的一个存储和管理解决方案.

课柄:

-   设置并获得当前JWT.
-   JWT快到期时通知观察员.
-   移除JWT.

#### 使用量

```javascript
const { JwtRepository } = require('jwt-manager');

// Create JwtRepository instance with optional parameters
const jwtRepository = new JwtRepository(limitInSeconds, defaultTokenTTLInSeconds, logger);

// Set a JWT with optional extra information
jwtRepository.setToken('myJWT', { extra: 'info' });

// Get the current JWT
const currentToken = jwtRepository.token;

// Subscribe to the token nearing its expiration
const unsubscribe = jwtRepository.subscribeToTokenNearExpiration((token) => {
  console.log(`Token is about to expire: ${token}`);
});

// To unsubscribe
unsubscribe();

// Remove the current JWT
jwtRepository.removeToken();
```

#### API 密码

`JwtRepository` 揭露下列方法:

-   `constructor(limitInSeconds: number, defaultTokenTTLInSeconds: number, logger: Logger)`: 构造器使用可选参数来自定义其行为. 这个 `limitInSeconds` 确定该标志过期前通知观察者的时间。 这个 `defaultTokenTTLInSeconds` 如果“exp”索赔在符号中不存在,则设定默认的符号过期时间为秒. `logger` 用于记录警告和错误.
    
-   `token`: 返回当前 JWT .
    
-   `setToken(token: string, extraInfo?: ExtraInfo)`: 以可选的额外信息设置当前 JWT 。 返回设定符号的对象.
    
-   `removeToken()`: 删除当前 JWT .
    
-   `subscribeToTokenNearExpiration(cb: (token: JwtToken<T, ExtraInfo>) => void)`: 订阅即将到期的代币. 它返回一个可用于取消订阅的函数.
    

### Jwt 解析器

这个 `JwtResolver` 类型用于定义 JWT 解析器实例的结构。 它包含一个 `getJwt` 以 JWT 和可选的额外信息返回承诺的方法.

## 捐款

我们欢迎捐款! 请看我们的 [贡献指南](https://npmcn.com/CONTRIBUTING.md) 更多细节.

## 许可证

见 [LICENSE.txt (英语)](https://npmcn.com/package/%40conduit-client/jwt-manager/LICENSE.txt) 详细文件.

## 常见问题

### @conduit-client/jwt-manager 是什么？

Luvio 下个通用 JWT 管理器

### 如何安装 @conduit-client/jwt-manager？

在项目目录运行 npm install @conduit-client/jwt-manager，或使用 pnpm add / yarn add / bun add。

### @conduit-client/jwt-manager 支持 TypeScript 吗？

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

### @conduit-client/jwt-manager 支持 ESM 还是 CommonJS？

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

### @conduit-client/jwt-manager 可以商用吗？

@conduit-client/jwt-manager 使用 SEE LICENSE IN LICENSE\.txt 许可。许可条款写在包内的独立文件中，请阅读该文件确认可否商用。以上为概括，不构成法律意见，请以许可原文为准。

### @conduit-client/jwt-manager 的下载量有多少？

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

### @conduit-client/jwt-manager 还在维护吗？

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

