@12-apps/auth

中文文档
2.35.0发布于 2026/11/05MITTypeScriptES Module构建来源已验证近 30 天下载 3.5万

插件和播放认证插件: Auth.js 接线和电子邮件+密码流(.),主机挂载后端表面(./服务器:路由,消息,邮件模板,鸭子型证书和设置存储接合), Auth UI(./反应:屏幕,整个登录/s)

中文使用文档
文档目录5 节
  1. 表格是软件包的
  2. 留在你的身边
  3. 安保模式
  4. 公约
  5. 稳定的登录会话绑定

@ 12- apps/ auth (英语)

作为插件的认证: Auth.js 接线,电子邮件+密码流 屏幕和流动所需的完整页面、可挂载后端表面以及 三个表格,所有它运行在,与 里面没有主机的词汇。 。 。 .

形状与 @12-apps/report-builder故意的 故意的 如果你采纳了 一,你已经知道这个的布局.

入境点需求里面有什么东西
.无createEmailCredentials、 密码策略、 令牌、 管理员许可列表、 限速器、 设备检测
./server无( 节点)页:1 Auth.js 大桥 (单位:千美元)createApiAuth, (中文(简体) ), auth, (中文(简体) ), handlers, (中文(简体) ), authConfig, (中文(简体) ), credentialsProvider),路由,状态词汇,邮件模板,以及鸭式证书+设置 存储接线
./react反应,反应 - 大小, @12-apps/ui屏幕,整个登录/签名 页次,平台设置屏幕
./hono哈诺一个 mount 调用整个后端表面
./notifications@12-apps/notificationscreateAuthMailer - 四个认证电子邮件通过一个 EmailDriver
./e2e@playwright/test, (中文(简体) ), playwright-bdd盖克金的旅程及其步骤

切入点是不同的 端点永远不要只是一个模块。 每个同伴都是 选项,所以从不使页面安装的后端不会有反应.

. 是光线的一半,这是执行的. 它没有价值——没有 @auth/core,没有反应,没有hono ——所以背景工作 过期的过时的代币 能够 import { hashToken } from '@12-apps/auth' 并且只装上这个。 (原始内容存档于2018-09-21). The Auth.js 运行时间居住于 ./server 出于同样的原因,报告编写者保持 createReportBuilder 在这里. src/__tests__/light-root.test.ts 沿着根走 导入图表,如果事实不再真实,则失败.

表格是软件包的

prisma/auth.prisma 拥有 auth_credentials, (中文(简体) ), auth_tokens 财务报告和审定财务报表 auth_platform_settings他们身边有移民.

pnpm --filter @12-apps/auth prisma:sync        # copy the partial into your schema
pnpm --filter @12-apps/auth prisma:sync:check  # CI: fail if the copy drifted

这部分是 复制, 绝不对齐数字 : npm pack 放弃对称链接条目, turbo prune 缠绕着一个所有者不是被宣布的附属者的联系,并且 普里斯马 lstats 迁移目录——所以一个连通的符号被默默地跳出, 它是一个绿色的部署,没有应用任何计划.

每个用户引用都是不透明的 user_id 与 没有外国密钥进入任何主机 图表因此,这些迁移适用于用户生活在下列情况下的回购: 其它名称,在另一个数据库中,或尚未存在.

留在你的身边

有一件事,因为它是 一个包裹不能知道一件事: 谁的用户 为:。 。 。 . EmailIdentityDelegate 是三种方法—— findByEmail, (中文(简体) ), findById, (中文(简体) ), upsert - 超过自己的用户表。 其他东西都在这儿.

除此之外,真正属于产品的选择:

  • 单词 ——每一份拷贝包都需要,从不缺省(PT_BR_* 船舶 每个地表一个;
  • 商标 页面上的一个插槽,与这个包完全不透明;
  • 提供者 一个节点,因为 OAuth 按钮带有 回调 URL 、 同意门和重定向 此软件包不能拥有 ;
  • 邮件供应商 - 您将环境命名为 VARIABLES; 哪些服务, 哪些服务 钥匙 地址是你的 它们之间的决议不是: createEnvAuthMailer 拥有水槽 / 供应商 / 拒绝树, 因为每个 它的分支是一个正确性的财产,而不是一个偏好.

相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 原主机的整条线路现在:

export const authMailer = createEnvAuthMailer({
  env: { provider: "NOTIFICATIONS_EMAIL_PROVIDER", apiKey: "RESEND_API_KEY",
         from: "NOTIFICATIONS_EMAIL_FROM", sinkFile: "AUTH_EMAIL_LOG_FILE",
         origin: ["APP_PUBLIC_URL", "AUTH_URL"] },
  drivers: EMAIL_DRIVERS,
  log: createFeatureLogger("auth-email"),
});

export const { GET, POST, PUT } = mountEmailAuth({
  path: "/api/auth/email",
  credentials, messages: PT_BR_MESSAGES, resolveUserId, onSignedUp,
});

安保模式

  • consumeToken 必须 成为有条件的写入( t)UPDATE … WHERE consumed_at IS NULL报告是否影响到一行。 返回值为 单用担保.
  • 注册和密码重置的答案是 不变 无论是否 地址存在,以及邮件是否离开。 这就是为什么邮递员 解决而不是抛出.
  • 部署与 没有 邮件提供者大声拒绝而不是退后 到日志:日志聚合器中的重置链接是日志中的证书 聚会.
  • requireEmailVerification 更改注册 合同不仅仅是它的 安保——见Adopting.md.
  • createInProcessRateLimiter() 返回一个 InProcessRateLimiter页:1 AuthRateLimiter 端口( e)check(key)+) 加上 (中文(简体) ) retryAfterMs(key),则 毫秒到键 限制范围 获得新窗口( e)0 当它是 没有限制,它的窗口已经过期,或者它从未被看到). 只读, 在 已注射 now。一个主机回答 429 它变成 Retry-After 与 Math.ceil(ms / 1000)。端口本身没有变化,所以是一个共享的商店 限制器不欠新的.

公约

  • 每个地表都是 create* 工厂 一个配置对象。 。 。 .
  • 这里没有读到环境变量.
  • 数据库客户端是 鸭子型 (单位:千美元)AuthDb, (中文(简体) ), AuthSettingsDb);这个 软件包永远不会解决生成的 Prisma 客户端.
  • 开发者-格式文本为英文;所运出的副本包为pt-BR.

完整接线、终点清单和不明显的决定: 采用.md旅行和驾驭笔记: E2E.m.d (电子数据)。 。 。 .

稳定的登录会话绑定

经核实的会话会显示可选 loginSessionId,随机的每个记录非ce. 这是在真正的登录上铸造的 encodeSessionToken),通过 普通 Auth.js JWT 更新,并在下次登录时替换. 这对 将 OAuth 同意请求绑定在一个 cookie- 认证的登录上: 账户 IDs 范围太广,而加密 cookie 字节和 Auth.js iat编号 :jti 变化期间 正常刷新。 总是从已核实的服务器会话读取, 从未读取过 客户端请求字段 。 没有索赔要求的后遗症饼干仍然得到认证,但 除非有新的签注,否则没有约束力;会话从不发明.

版本与发布记录

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

版本发布日期距今
2.35.0latest2026/11/051 天前
2.34.12026/10/2710 天前
2.34.02026/10/2710 天前
2.33.02026/10/2412 天前
2.32.02026/10/2116 天前
2.31.02026/10/2116 天前

关于 @12-apps/auth 的常见问题

@12-apps/auth 是什么?

插件和播放认证插件: Auth.js 接线和电子邮件+密码流(.),主机挂载后端表面(./服务器:路由,消息,邮件模板,鸭子型证书和设置存储接合), Auth UI(./反应:屏幕,整个登录/s)

如何安装 @12-apps/auth?

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

@12-apps/auth 支持 TypeScript 吗?

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

@12-apps/auth 支持 ESM 还是 CommonJS?

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

@12-apps/auth 可以商用吗?

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

@12-apps/auth 的下载量有多少?

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

@12-apps/auth 还在维护吗?

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