@cimpress/simple-auth-wrapper

中文文档
11.0.1发布于 2026/08/07Apache-2.0TypeScriptESM + CJS近 30 天下载 1.8万

一个简单的工具类来包装基本的 Auth0 功能

中文使用文档
文档目录7 节
  1. 关于
  2. 使用
  3. 客户端配置
  4. 代表团
  5. 授权代码
  6. 授权代码流与代码交换的证明密钥( PKCE)
  7. 分步认证

MEX 简单 Auth 包装器 v. 3

关于

这是Auth0的轻量级包装器,取消了写入并重写许多标准公用功能的需要.

看看这个 更改日志 以查看最新变化.

使用

查看使用 Cimpress 客户端的中央登录执行此包装的示例 单页应用程序样本

关于从嵌入式认证向集中式认证的迁移,见 融入中央集权移徙

客户端配置

使用 Cimpress 客户端配置,创建单一页面App客户端配置. 此客户端ID 将用来配置包装 . 添加 Allowed Callback URLs, (中文(简体) ), Allowed Logout URLs,以及 Allowed Web Origins 与您的申请相对应。 如果您想要使用刷新符号, 请启用 Enable Refresh Token Rotation 并设定刷新符号寿命和刷新符号再使用间隔.

导入库并即时化一个新的认证帮助器,在域,受众,您的客户端ID中通过,使用RefreshTokens(可选)和Auth0的重定向Uri在认证后重定向到(在Auth0 v7中称为回调url). 你需要通过相对路线。 例如"/日志". 如果域和受众为空白,域将默认为 cimpress.auth0.com0 观众将默认为 https://api.cimpress.io/。您可能不需要手动设置这些 .

npm install @cimpress/simple-auth-wrapper
import { centralizedAuth } from '@cimpress/simple-auth-wrapper';

const auth = new centralizedAuth(options); // see full list of supported options in centralizedauth.js

然后,以下内容可供您参考:

ensureAuthentication(options) 将手柄认证和登录结合起来。 这个单调可以用于页面负荷,它将尽所需要,确保用户得到认证. 此方法接受与 login(options) 方法.

handleAuthentication() 解析认证返回时url上的散列 。 此函数将自动将您重定向到通过登录的 URL 。 返回解析认证状态布尔的许诺 .

login(options) 用 Auth0 登录一个用户:首先检查SSO 会话是否存在,如果存在,则重新定向到集中登录页面。 返回解析认证状态布尔的许诺 。 以下列出您可使用此方法的选项 .

名称类型默认说明
nextUri字符串"/"如果用户无法通过 Single Sign On 获得新令牌, 则它们将被全部带走 网络 Auth. 授权( ) 流出并会被带回这里 nextUri 路线.
forceLogin布尔false若为 true,用户的认证信息会被从本地Storage中移除,迫使他们经过整个 webAuth.authorize() 流量(而不是通过 Single Sign On 获得新的符号).

logout(nextUrl, logoutOfFederated) 登录一个用户, 从本地存储中移除其符号和配置 。 将打开下一个URL中提供的 URL . 如果提供了可选的注册地址(Official Fosteria)并且该地址是真实的,则还将从身份提供者中登录用户。 注意: 这不是一个常用的用例, 大多数应用程序不需要提供这个参数 。 更多信息 https://auth0.com/docs/logout (英语)

订阅事件

以下列出您可以订阅的不同事件 .

名称说明
tokenExpired(注:具体版本) 此事件在用户的令牌过期时被触发. 如果用户在 localStorage 中的令牌在该事件订阅时已过期(即. auth.on('tokenExpired', ...)这件事情将立即发生. 如果你使用第九版和下面,你可以通过 emitInitialTokenExpired 10版及以上版本的构造器选项现在默认关闭. 默认此事件会在实际到期前30秒发射出. 您可以通过 expirationOffset 构造器选项 。 也有可能向浏览器焦点开火. 这是由 checkExpirationOnFocus 构造器选项并存在,因为当用户的计算机入睡时,已过期的符号定时器可能不可靠.
import { centralizedAuth } from '@cimpress/simple-auth-wrapper';

const auth = new centralizedAuth(options);

auth.on('tokenExpired', () => {
  // This is invoked each time the current token in localStorage becomes expired.
  // This will also be immediately invoked if the token in localStorage is already expired. (configurable via emitInitialTokenExpired)
  console.log('The token in local storage is expired.');
});

代表团

代表团不再是核心包装器的一部分。 如果您有需要, 您可以加载并选择将其补丁到认证对象 :

import { centralizedAuth, Delegation } from '@cimpress/simple-auth-wrapper';

const auth = new centralizedAuth(options);

const delegationHandler = new Delegation(auth);

auth.buildDelegationHeader = delegationHandler.buildDelegationHeader;

这样你就能接触到:

buildDelegationHeader(targetClientId) 建立一些取回信头, 必要时获得代表团的标志 。 注:代表团被折旧,不建议使用。 我们建议使用访问符.

getDelegationToken(targetClientId) 为给定的目标客户端获得代表团的标志。 注:代表团被折旧,不建议使用。 我们建议使用访问符.

授权代码

这个 授权代码 可用于为用户取回更新令牌.

import { AuthorizationCodeGrant } from '@cimpress/simple-auth-wrapper';
const authorizationCodeGrant = new AuthorizationCodeGrant(options);
名称类型默认说明
clientID字符串无( 需要)授权代码 Grant 流程中使用的客户端ID
redirectRoute字符串"" "" (英语)Auth0 路由将重定向到: window.location.origin + redirectRoute
domain字符串cimpress.auth0.comAuth0 域名
audience字符串https://api.cimpress.io/授权观众
scope字符串offline_access您想要请求访问的范围

这样你就能接触到:

login(options) 启动授权代码Grant Flow,将用户重定向到集中锁页面.

名称类型默认说明
nextUri字符串/将用户带入流中并返回到此位置 nextUri 路线.
authParams对象{}可选择通过附加参数到 /authorize 由 auth0.js 创建 url. 对必须处理的案件有用 向国内流离失所者发送额外数据。 。 。 .

handleAuthentication(options) 恢复授权代码授权流程。 应该在您的申请的底部,或 redirectUri 指定要继续流动。 返回承诺 { authorizationCode, redirectUri, nextUri }

名称类型默认说明
performRedirect布尔真实指示包装是否应当重定向到指定的位置 nextUri

授权代码流与代码交换的证明密钥( PKCE)

这个 授权代码随 PKCE 流动 可用于为用户取回更新令牌。 这个是用来配合 会话 API 其中会话用于退出用户访问符.

为什么从授权代码Grant改为授权代码CrantPKCE?

当公共客户端(如本地和单页应用程序)请求Access Tokens时,一些额外的安全顾虑(无法安全地存储客户端机密)被提出来,而授权代码流程本身并不能缓解.

为缓解这种情况,PKCE-增强授权代码流程引入了由调用应用程序所创建的一个可以由授权服务器验证的秘密;这个秘密被称为代码验证器. 此外,调用应用程序还创建了名为"代码挑战"的代码验证器的变换值并将此值通过HTTPS发送到获取授权代码. 这样一来,恶意攻击者只能截取授权代码,他们不能在没有代码验证器的情况下将其交换出一个令牌.


import  {  AuthorizationCodeGrantPKCE  }  from  '@cimpress/simple-auth-wrapper';

const  authorizationCodeGrantPKCE  =  new  AuthorizationCodeGrantPKCE(options);

名称类型默认说明
clientID字符串无( 需要)授权代码 Grant 流程中使用的客户端ID
redirectRoute字符串"" "" (英语)Auth0 路由将重定向到: window.location.origin + redirectRoute
domain字符串cimpress.auth0.comAuth0 域名
audience字符串https://api.cimpress.io/授权观众
scope字符串offline_access您想要请求访问的范围

这样你就能接触到:

login(options) 启动授权代码Grant Flow,将用户重定向到集中锁页面.

名称类型默认说明
nextUri字符串/将用户带入流中并返回到此位置 nextUri 路线.

handleAuthentication(options) 恢复授权代码授权流程。 应该在您的申请的底部,或 redirectUri 指定要继续流动。 返回布尔值,表示用户是否成功完成了授权代码授权流程.

名称类型默认说明
performRedirect布尔真实指示包装是否应当重定向到指定的位置 nextUri

ensureAuthentication(options) 将手柄认证和登录结合起来。 这个单调可以用于页面负荷,它将尽所需要,确保用户得到认证.

名称类型默认说明
nextUri字符串/将用户带入流中并返回到此位置 nextUri 路线.
forceLogin字符串/强制重定向用户到集中锁页面.

getProfile(sessionId) 返回用户的配置信息,以交换会话Id。 我打给 配置服务 API 为了获取信息并避免多次拨打API,我们先将配置信息缓存到设定间隔(1小时)后再再次引用配置服务.

logout(nextUri) 关闭活动会话并清除本地存储。 登录用户出局后, 用户会被发送到“ nextUri” 指定的url 。 如果下一个Uri是相对路径, 用户将被发送到 window.location.origin + nextUri

isLoggedIn(sessionId) 返回当前会话是否活动.

订阅事件

以下列出您可以订阅的不同事件 .

名称说明
sessionExpired当用户会话到期时会触发此事件 。 默认此事件会在实际到期前30秒发射出. 您可以通过 sessionExpirationOffset 构造器选项 。 也有可能向浏览器焦点开火. 这是由 checkExpirationOnFocus 构造器选项并存在,因为当用户的计算机入睡时会话已过期的定时器可能不可靠.
import { AuthorizationCodeGrantPKCE } from '@cimpress/simple-auth-wrapper';

const auth = new AuthorizationCodeGrantPKCE(options);

auth.on('sessionExpired', () => {
  console.log('The session has expired.');
});

分步认证

initiateStepupLogin(nextUri, logoutOfFederated, ttl) 此功能负责启动升级登录进程. 它需要以下参数:

名称类型默认说明
nextUri字符串/将用户带入流中并返回到此位置 nextUri 路线.
logoutOfFederated布尔false如果提供了可选的注册地址(Official Fosteria)并且该地址是真实的,则还将从身份提供者中登录用户。 注意: 这不是一个常用的用例, 大多数应用程序不需要提供这个参数 。 更多信息 https://auth0.com/docs/logout (英语)
ttl数目undefined是时候活着了,代表着 踏出标志的到期时间.

getStepUpExpiryTime() 提供因认证的升级而导致的升级标志到期的时间.

版本与发布记录

@cimpress/simple-auth-wrapper 共发布 82 个版本,首次发布于 2017/12/06;过去 12 个月发布了 4 个版本。

版本发布日期距今
11.0.1latest2026/08/073 个月前
11.0.02026/07/014 个月前
10.0.22026/04/106 个月前
10.0.12026/01/309 个月前
10.0.02025/09/031.2 年前
9.0.12025/08/131.2 年前

关于 @cimpress/simple-auth-wrapper 的常见问题

@cimpress/simple-auth-wrapper 是什么?

一个简单的工具类来包装基本的 Auth0 功能

如何安装 @cimpress/simple-auth-wrapper?

在项目目录运行 npm install @cimpress/simple-auth-wrapper,或使用 pnpm add / yarn add / bun add。

@cimpress/simple-auth-wrapper 支持 TypeScript 吗?

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

@cimpress/simple-auth-wrapper 支持 ESM 还是 CommonJS?

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

@cimpress/simple-auth-wrapper 可以商用吗?

@cimpress/simple-auth-wrapper 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cimpress/simple-auth-wrapper 的下载量有多少?

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

@cimpress/simple-auth-wrapper 还在维护吗?

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