# @aooth/login-client 中文文档

规范地址：https://npmcn.com/package/%40aooth/login-client/

版本：0\.2\.6
npm 元数据更新时间：2026-11-06T20:46:02.895Z
中文译文更新时间：2026-11-07T06:51:55.624Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40aooth/login-client
原文对照：https://npmcn.com/package/%40aooth/login-client/?lang=original
项目主页：https://github.com/moostjs/aoothjs/tree/main/packages/login-client#readme
源码仓库：https://github.com/moostjs/aoothjs

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

- 包体积（解压后）：28.5 kB，7 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2026-06-05T21:15:12.558Z
- 最新版本发布：2026-11-06T20:46:02.698Z
- 近 30 天下载量：2022（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：85（近 12 个月 85 个）

## 中文简介

用于 aoothjs 授权服务器的零依赖性 CLI/loopback 登录帮助器(浏览器回转 + PKCE, 返回一个符号)

## 安装

```sh
npm install @aooth/login-client
```

也可以使用：`pnpm add @aooth/login-client`、`yarn add @aooth/login-client`、`bun add @aooth/login-client`

## README

# @aooth/login-客户端

通过用户登录的零依赖性助手 **浏览器** 手举起 返回本地进程符号—— `gh auth login` 模式,用于任何 [阿欧斯](https://github.com/moostjs/aoothjs) 授权服务器.

它运行授权码 + PKCE 流对一发 **循环** 重新定向 (`http://127.0.0.1:<ephemeral-port>/callback`因此,没有什么是永远 拷贝。 建于节点内置(`node:http`, (中文(简体) ), `node:crypto`, (中文(简体) ), `node:child_process`)和全球 `fetch` 仅 -- **无运行时间依赖关系**。 。 。 .

## 安装

```bash
npm i @aooth/login-client   # Node >= 18
```

## 使用

```ts
import { authorize } from "@aooth/login-client";

const { accessToken, expiresIn, userId } = await authorize({
  authorizeUrl: "https://main.example.com/auth/authorize",
  tokenUrl: "https://main.example.com/auth/token",
  // clientId,                 // omit for a public/loopback client (PKCE is the binding)
  // scope: ["api"],
  // statusUrl: "https://main.example.com/auth/status",  // optional: confirm the token works
});

// send it: Authorization: Bearer <accessToken>
```

它所做的: 打开一发子弹 `127.0.0.1` 听器,生成 `state` +PKCE, + 电子计算机, 打开浏览器到 `authorizeUrl`等待单一的召回, **核实 `state`** (CSRF检查),然后 `POST tokenUrl { code, code_verifier }` 财务报告和审定财务报表 返回符号。 没错 **没有** 加密验证符号——即 服务器的不透明证书; TLS + PKCE + `state` 是约束.

### 无头/ SSH

```ts
await authorize({
  authorizeUrl,
  tokenUrl,
  openBrowser: false,
  onUrl: (url) => console.log(`Open this URL to sign in:\n${url}`),
});
```

用户打开 URL 后, 回回收听器仍可抓取回调 在同一个机器上.

## 选项

| 选项 | 默认 | 页:1 |
| --- | --- | --- |
| `authorizeUrl` | —— 说 | 服务器的 `GET /auth/authorize` |
| `tokenUrl` | —— 说 | 服务器的 `POST /auth/token` |
| `clientId` | —— 说 | 省略一个公共/浏览客户端 |
| `scope` | —— 说 | `string[]`空间 |
| `openBrowser` | `true` | 设定 `false` + 键 `onUrl` 无头 |
| `onUrl` | —— 说 | 总是用授权 URL 调用( 打印后退行) |
| `statusUrl` | —— 说 | 可选择的无记名确认 `GET`; 采用 `userId` |
| `timeoutMs` | `300000` | 等待浏览器调用 |
| `signal` | —— 说 | `AbortSignal` 取消(例如在SIGINT上) |

失败投出 `AuthorizeError` 带有 `.code` (单位:千美元)`provider_denied` • 妇女 `state_mismatch` • 妇女 `exchange_failed` • 妇女 `timeout` • 妇女 `status_check_failed`) (中文(简体) ).

## 常见问题

### @aooth/login-client 是什么？

用于 aoothjs 授权服务器的零依赖性 CLI/loopback 登录帮助器\(浏览器回转 \+ PKCE, 返回一个符号\)

### 如何安装 @aooth/login-client？

在项目目录运行 npm install @aooth/login-client，或使用 pnpm add / yarn add / bun add。

### @aooth/login-client 支持 TypeScript 吗？

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

### @aooth/login-client 支持 ESM 还是 CommonJS？

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

### @aooth/login-client 需要什么版本的 Node\.js？

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

### @aooth/login-client 可以商用吗？

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

### @aooth/login-client 的下载量有多少？

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

### @aooth/login-client 还在维护吗？

最新版本 0\.2\.6 发布于 2026/11/07（今天）；至今共发布 85 个版本，其中过去 12 个月发布了 85 个；首次发布于 2026/06/06。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

