@baukit/suite-client

中文文档
0.18.3发布于 2026/11/07MITTypeScriptESM + CJS构建来源已验证近 30 天下载 8014

无头套件连接,授权状态和连接的应用客户端.

中文使用文档
文档目录5 节
  1. 客户和会话
  2. 页面和本地意图
  3. 主机授权 URL
  4. 配置时的对等元数据
  5. 离线应享权利票

@baukit/套接字客户端

无头套件连接网络和本地客户端. 软件包导出一个类型 HTTP 客户端, OAuth 会话处理、 授权和连接应用程序状态, 返回 URL 和本土意向警卫、同行开放、通知、英文、德文和西班牙文 留言。 它不导入 React, Expo 或浏览器环球 .

客户和会话

构造 SuiteClient 与产品认证的JSON运输。 前缀 带有产品 API 基础的路径。 将 Baukit 错误解码为 Error 带字符串 code,例如 ApiError 从 @baukit/api-runtime复放和删除 请求有空机构.

构造一个 SuiteSession 每个签到的会话,由本地人分享 auth会话并重定向处理器. 供应 OAuthSessionCoordinator 存储,时钟, 非ce、 网页重定向和本地会话适配器 @baukit/integrations-client。 。 。 . 网络适配器重定向同分页 。 本地适配器打开验证会话并获得通过 它的结果回来了。 坚持OAuth状态 穿越冷发射。 协调员检查 在完成服务器请求前,返回终点、非ce和10分钟到期.

import { SuiteClient, ConnectedApps } from '@baukit/suite-client';

// Product adapters supply transport and the configured session instance.
const client = new SuiteClient(transport);
const connectedApps = new ConnectedApps(client, session);
await connectedApps.load();
const result = await connectedApps.connect('beta');
if ((result.type === 'ready' || result.type === 'failed') && result.completed) {
  if (navigation.claimSuiteConnectionAnnouncement(result.completed.requestId)) {
    announceConnected(result.completed.peerApp);
  }
}

成功连接可刷新列表 . connect() 返回时 completed: { peerApp, requestId } 编辑 ready 状态,或 failed 状态 如果刷新失败。 失败状态 completed 表示连接的服务器 应用程序;其 code 描述刷新错误。 分别处理错误 从连接通知。 一会儿 load() 清除 completed。 。 。 .

分享一个 SuiteNavigationStore 这名打电话者和 SuiteLinkedMachine。 。 。 . 它的公告守护 扭曲了本地的认证结果 并改变方向 以请求编号发出通知。 会话将代码赎回一次,即使两种路径都起火.

页面和本地意图

使用 parseSuiteAuthorizeQuery 在构建前 SuiteAuthorizeMachine。 。 。 . 它的状态涵盖登录,同意,自动批准,账户提示不匹配,拒绝, 拒绝和本地同意必须打开网页。 将那些 在产品UI中声明. switchSuiteAccount 在开始登录前登录.

SuiteLinkedMachine 将召回的 URL 保留在内存中,并要求产品去除 历史的代码。 等待身份恢复,然后打电话 restore完成工作 运行一次, 刷新连接的应用程序并创建通知 SuiteNavigationStore。 。 。 . 存储到产品认证会话的范围 .

createSuiteNativeIntentValidator(scheme) 仅允许套房授权和链接 页面. openSuitePeer 在配置的网络回落前尝试对等方案. 需要HTTPS,除非产品明确允许回回回回回回HTTP.

登记册 suiteMessages 与 @baukit/localization-core替换产品 {product} 并且为自己的事件类型制作标签。 信件密钥和内插 校对:soup en, (中文(简体) ), de 财务报告和审定财务报表 es。 。 。 .

主机授权 URL

使用 validateSuiteAuthorizePeer(peer, options) 当装入对等配置时. peer 已经 webUrl 和可选 authorizeUrl。后者是完全主机 页面 URL,包括授权的产品ID. 需要HTTPS; 启用 options.allowLoopback 用于回放 HTTP 开发。 全权证书、查询和 碎片被拒绝.

import { suiteAuthorizeUrl, validateSuiteAuthorizePeer } from '@baukit/suite-client';

const peer = {
  webUrl: 'https://beta.example',
  authorizeUrl: 'https://account.example/suite/authorize/beta',
};
validateSuiteAuthorizePeer(peer);
const url = suiteAuthorizeUrl(peer, {
  client: 'alpha', state, codeChallenge, hint, hintDomain,
});

所配置的路径被保存,包括后端斜线. 查询使用 client, (中文(简体) ), state, (中文(简体) ), code_challenge选项 hint 财务报告和审定财务报表 hint_domain。 。 。 . 无 authorizeUrl,终点不变 ${webUrl}/suite/authorize。 。 。 . SuiteClient.start 已返回服务器配置 authorizeUrl· ; SuiteSession 直接使用它。 产品构建 URL 本身可以使用 帮手 在未经主机同意的情况下,保持本地授权的部署页面.

配置时的对等元数据

无依赖性 @baukit/suite-client/peers 子路径有无害环境管理和共同JS 出口。 Expo 配置插件无需装入客户端或客户端即可要求它 依赖性。 产品拥有同级文件;本包中没有船.

const { readFileSync } = require('node:fs');
const { parsePeersFile, peerLinkQuerySchemes } = require('@baukit/suite-client/peers');

const peers = parsePeersFile(JSON.parse(readFileSync(peersPath, 'utf8')));
const schemes = peerLinkQuerySchemes(peers, ownAppId);

parsePeersFile(json: unknown): PeerMetadata[] 验证 schema-version-1 带有 Rust 注册规则的文件. peerLinkQuerySchemes(peers: readonly PeerMetadata[], ownAppId: string): string[] 由 id 排除自己的应用程序,然后 减员和各种计划。 对 iOS 使用结果 LSApplicationQueriesSchemes 和 Android 数据 <queries>。收养指南有一个 保存已存在的条目的配置插件 .

见 成套收养 用于服务器接线 和协议合同。 此软件包没有添加 CLI 模板能力 .

离线应享权利票

导入 verifyTicket 财务报告和审定财务报表 TicketVerificationError 从 @baukit/suite-client/entitlements。通过紧凑的票,信任 TicketJwks 财务报告和审定财务报表 { issuer, audience, now },与 now 在Unix秒内。 结果是 TicketClaims; 比较其 sub 在授予前使用当前套件科目 进入。 产品拥有公用钥匙刷新和票房.

校验在网络和Hermes上使用纯 JavaScript Ed25519, 不使用 WebCrypto 或 节点环球. 它执行枢纽 严格的过期,七天最长寿命, 60秒的发行时间津贴和确切的索赔计划。 见 平台通过 用于服务器设置 和稳定的出错代码.

版本与发布记录

@baukit/suite-client 共发布 50 个版本,首次发布于 2026/10/08;过去 12 个月发布了 50 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.18.3latest2026/11/07今天
0.18.22026/11/061 天前
0.18.12026/11/062 天前
0.18.02026/11/052 天前
0.17.12026/11/034 天前
0.17.02026/11/025 天前

关于 @baukit/suite-client 的常见问题

@baukit/suite-client 是什么?

无头套件连接,授权状态和连接的应用客户端.

如何安装 @baukit/suite-client?

在项目目录运行 npm install @baukit/suite-client,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@baukit/localization-core(^0.18.3)、@baukit/integrations-client(^0.18.3)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@baukit/suite-client 支持 TypeScript 吗?

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

@baukit/suite-client 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@baukit/suite-client 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@baukit/suite-client 可以商用吗?

@baukit/suite-client 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@baukit/suite-client 的下载量有多少?

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

@baukit/suite-client 还在维护吗?

最新版本 0.18.3 发布于 2026/11/07(今天);至今共发布 50 个版本,其中过去 12 个月发布了 50 个;首次发布于 2026/10/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。