@confighub/react-auth

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

ConfigHub 浏览器应用软件(OIDC PKCE + RFC 8693 令牌交换)的反向认证提供者和钩子

中文使用文档
文档目录4 节
  1. 配置
  2. useAuth()
  3. 外部反应
  4. 坚挺姿态

@ conquighub/ react-auth (英语)

对浏览器应用进行认证的响应提供者和钩子 配置图 API (英语). 运行浏览器- 直接流端到结束 —— 运行时间发现, OIDC 授权代码 + PKCE 对抗已发现的 IDP, 然后 RFC 8693 硬币交换 薄荷 ConfigHub 硬币——手放回打字机 @confighub/api 客户端预线 与标志.

import { ConfigHubAuthProvider, useAuth, useConfigHub } from '@confighub/react-auth';

<ConfigHubAuthProvider baseUrl="https://hub.confighub.com" clientId={CLIENT_ID}>
  <App />
</ConfigHubAuthProvider>;

function App() {
  const { status, user, login, logout } = useAuth();
  const api = useConfigHub(); // typed client, token already attached
  // await api.GET('/me'); await api.GET('/space/{space_id}/unit', { params: { path: { space_id } } });

  if (status === 'loading') return <p>…</p>;
  if (status !== 'authenticated') return <button onClick={login}>Log in</button>;
  return <button onClick={logout}>Sign out {user!.organizationId}</button>;
}

配置

  • baseUrl 例如,ConfigHub案. https://hub.confighub.com。 。 。 .
  • clientId 这个应用程序的注册 OAuth 客户端 ID,来自 cub oauthclient create <name> --redirect-uri <origin>/。 。 。 .
  • callbackPath (默认) /)——IDP重定向回 {origin}{callbackPath}, (中文(简体) ), 它就是重定向URI以注册。 它故意固定的:用户的页面 从PKCE旅行开始 state 然后在返回时恢复,故登录 从 /space/x?tab=units 回到那里,没有记录每条路.
  • persist (默认) 'session')——本届会议保留在 sessionStorage,所以一个 重新装入或内塔布导航不通过 IDP. Tab-scoped 进行回转 当标签关闭时,当符号过期时会掉入. 'none' 放在记忆里 仅此而已,每一页的负载都会开始未经认证.
  • onUnauthorized (默认) 'login')——一个被否决的标志意味着什么. 'login' 尝试 沉默的再校正; 'logout' 只是放弃了会话。 应用时 getAccessToken 当一个数据客户端报告一个401时 结束 handleUnauthorized (下关.

IDP发行器和OIDC端点是从 {baseUrl}/api/info,所以请 同一构件运行于任何 ConfigHub 实例( 捆绑的 Ceycloak for Cloud, a) 企业的IdP).

useAuth()

const { status, user, error, login, logout, reauthenticate, signInWithTicket, getToken } = useAuth();
  • login(options?) ——改道到IDP. returnTo 选择着陆路径 (默认:为当前之一). organization 是 Keycloak 组织别名, 已发送 作为 organization:<alias> 范围, 因此不提示多用户 。 左边 ,则使用此浏览器中上次成功登录的别名(记住) 每个客户 localStorage;一个简短的公用名称,而不是证书),所以一个新的 选项卡或在同一组织静默地登录后登录. null keycloak 提示。 两者都是应用程序的开关 组织:通过IdP新登录,即会员所在地 决定. prompt: 'none' | 'login' | 'create' 通过; 'create' 打开 iDP的注册表,所以一个注册链接是 login({ prompt: 'create' })。 。 。 .
  • logout(options?) ——在本分页中忘记会话. endSession: true 也结束 (由RP启动的登录程序) id_token_hint),着陆 postLogoutRedirectUri (默认: 回调 URI),必须注册 为客户。 没有它,下一个登录 骑SSO饼干安静地。 虽然 页面导航到 IDP, 状态保留 loading因此,一个程序登录 自动打开 unauthenticated 不启动一个与日志相匹配的登录.
  • reauthenticate() ——标志停止工作:a prompt=none 来回旅行 会议已经安排好了。 状态为 loading 与此同时,没有 unauthenticated自动登录的应用程序 unauthenticated 不是种族 这个 如果 IdP 会话也走了, 页面会回来 unauthenticated时 没有身份提供商 没有什么可问的 状态去 直达 unauthenticated。 。 。 .
  • signInWithTicket(ticket) ——赎回单次使用票 cub auth browser-session (单位:千美元)POST /auth/browser-session)为会. 就是这样 一个浏览器在没有身份提供者的实例中签名 /api/info 通过广告显示 AuthIssuer· ; login() 拒绝方式 NoIdentityProvider 在这里。 会话后面没有 IDP, 所以当它过期时, 用户会运行 重新指挥.

外部反应

两个模块级函数将会话带入无法使用钩的代码,例如 数据客户端的请求设置 :

  • getAccessToken() ——当前符号,或未定义. 它从不返回过期的 符号:它启动提供者的恢复(每 onUnauthorized和未定义的返回, 页面从IdP那里回来.
  • handleUnauthorized() - 报告一个401。 仅需在它被拒绝之前 过期( 服务器密钥旋转, 取消会话); 过期由 getAccessToken. 已经开始恢复时不开放.
import { getAccessToken, handleUnauthorized } from '@confighub/react-auth';
import { configureConfigHub } from '@confighub/rtk-query';

configureConfigHub({ baseUrl, getToken: getAccessToken, onUnauthorized: handleUnauthorized });

坚挺姿态

铸币局保存在 sessionStorage 默认或内存 与 persist: 'none'永远 localStorage。瞬间 PKCE 状态已停放 sessionStorage 整个授权重定向。 被拒绝或过期的令牌触发 a 静态再校正(见 onUnauthorized)),需要实时的 IDP 会话;刷新 不使用指使符,所以指使符的寿命是没有指使符的页面最长的 转向.

react (18或19)是同龄人依赖关系.

版本与发布记录

@confighub/react-auth 共发布 109 个版本,首次发布于 2026/07/07;过去 12 个月发布了 109 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.10.12latest2026/11/11今天
0.10.112026/11/082 天前
0.10.102026/11/073 天前
0.10.92026/11/073 天前
0.10.82026/11/064 天前
0.10.72026/11/055 天前

关于 @confighub/react-auth 的常见问题

@confighub/react-auth 是什么?

ConfigHub 浏览器应用软件(OIDC PKCE + RFC 8693 令牌交换)的反向认证提供者和钩子

如何安装 @confighub/react-auth?

在项目目录运行 npm install @confighub/react-auth,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.0.0 || ^19.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@confighub/react-auth 支持 TypeScript 吗?

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

@confighub/react-auth 支持 ESM 还是 CommonJS?

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

@confighub/react-auth 可以商用吗?

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

@confighub/react-auth 的下载量有多少?

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

@confighub/react-auth 还在维护吗?

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