# @12-apps/auth 中文文档

规范地址：https://npmcn.com/package/%4012-apps/auth/

版本：2\.35\.0
npm 元数据更新时间：2026-11-05T04:06:08.120Z
中文译文更新时间：2026-11-05T19:35:05.368Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%4012-apps/auth
原文对照：https://npmcn.com/package/%4012-apps/auth/?lang=original
项目主页：https://github.com/12-apps/shared-packages#readme
源码仓库：https://github.com/12-apps/shared-packages

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：696 kB，136 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：hono \>=4\.0\.0，react \>=19\.0\.0，react-dom \>=19\.0\.0，@12-apps/ui \>=5\.0\.0，playwright-bdd \>=8\.0\.0，@12-apps/wiring \>=1\.9\.0，@playwright/test \>=1\.40\.0，@12-apps/notifications \>=4\.0\.0
- 首次发布：2026-07-17T22:21:35.892Z
- 最新版本发布：2026-11-05T04:06:07.650Z
- 近 30 天下载量：35253（2026-10-04 至 2026-11-02，npm 官方下载统计）
- 已发布版本数：87（近 12 个月 87 个）

## 中文简介

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

## 安装

```sh
npm install @12-apps/auth
```

也可以使用：`pnpm add @12-apps/auth`、`yarn add @12-apps/auth`、`bun add @12-apps/auth`

## README

# @ 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/notifications` | `createAuthMailer` - 四个认证电子邮件通过一个 `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`他们身边有移民.

```bash
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` 缠绕着一个所有者不是被宣布的附属者的联系,并且 普里斯马 `lstat`s 迁移目录——所以一个连通的符号被默默地跳出, 它是一个绿色的部署,没有应用任何计划.

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

## 留在你的身边

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

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

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

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

```ts
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](https://npmcn.com/package/%4012-apps/auth/ADOPTING.md)旅行和驾驭笔记: [E2E.m.d (电子数据)](https://npmcn.com/package/%4012-apps/auth/E2E.md)。 。 。 .

### 稳定的登录会话绑定

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

## 常见问题

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

