@conduit-client/jwt-manager

中文文档
3.34.0发布于 2026/11/05SEE LICENSE IN LICENSE.txtTypeScriptES Module近 30 天下载 4.3万

Luvio 下个通用 JWT 管理器

中文使用文档
文档目录9 节
  1. 安装
  2. 特征
  3. 使用量
  4. API 参考
  5. Jwt 管理器
  6. JWT 仓库
  7. Jwt 解析器
  8. 捐款
  9. 许可证

JWT 管理员

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

安装

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

npm install -client/jwt-manager

特征

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

使用量

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

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.

使用量

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 和可选的额外信息返回承诺的方法.

捐款

我们欢迎捐款! 请看我们的 贡献指南 更多细节.

许可证

见 LICENSE.txt (英语) 详细文件.

版本与发布记录

@conduit-client/jwt-manager 共发布 74 个版本,首次发布于 2025/11/01;过去 12 个月发布了 71 个版本。

版本发布日期距今
3.34.0latest2026/11/055 天前
3.33.02026/10/2912 天前
3.32.12026/10/2219 天前
3.32.02026/10/1526 天前
3.31.02026/10/091 个月前
3.30.12026/10/091 个月前

其他发布通道:patch → 3.26.1-dev3。

关于 @conduit-client/jwt-manager 的常见问题

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