# @authup/server-adapter-web 中文文档

规范地址：https://npmcn.com/package/%40authup/server-adapter-web/

版本：1\.0\.0-beta\.73
npm 元数据更新时间：2026-11-01T20:48:28.919Z
中文译文更新时间：2026-11-07T06:18:42.354Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40authup/server-adapter-web
原文对照：https://npmcn.com/package/%40authup/server-adapter-web/?lang=original
项目主页：https://github.com/authup/authup#readme
源码仓库：https://github.com/authup/authup

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

- 包体积（解压后）：24 kB，13 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=26\.0\.0
- 运行依赖：1 个
- 首次发布：2026-05-08T09:02:08.447Z
- 最新版本发布：2026-11-01T20:48:28.518Z
- 近 30 天下载量：3101（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：32（近 12 个月 32 个）

## 中文简介

校验网络请求的 Authup 访问令牌, 以它为基础的任何框架 .

## 安装

```sh
npm install @authup/server-adapter-web
```

也可以使用：`pnpm add @authup/server-adapter-web`、`yarn add @authup/server-adapter-web`、`bun add @authup/server-adapter-web`

## README

![Authup logo](https://raw.githubusercontent.com/authup/authup/master/.github/assets/logo.svg)

# @authup/服务器-适应器-web

**校验网络的 Authup 访问符 `Request`在任何框架内.**  
在框架的中间软件形状中,您将一个功能包入:Hono, routup, Bun. serve 或平面取取取处理器.

[![npm version](https://img.shields.io/npm/v/@authup/server-adapter-web)](https://www.npmjs.com/package/@authup/server-adapter-web) [![CI](https://github.com/authup/authup/actions/workflows/main.yml/badge.svg)](https://github.com/authup/authup/actions/workflows/main.yml) [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue)](https://npmcn.com/package/%40authup/server-adapter-web/LICENSE)

[**安装**](https://npmcn.com/package/%40authup/server-adapter-web/#readme-installation) • 妇女 [使用量](https://npmcn.com/package/%40authup/server-adapter-web/#readme-usage) • 妇女 [API 密码](https://npmcn.com/package/%40authup/server-adapter-web/#readme-api) • 妇女 [文档](https://authup.org/)

* * *

## 为什么?

网上建立的框架 `Request` API各自都有自己的中间软件签名,因此每个框架的适配器都永远不会跟上. 这个包装了他们分享的部分: 从一个 `Request`,用 [`@authup/server-adapter-kit`](https://github.com/authup/authup/tree/master/packages/server-adapter-kit) 并归还索赔。 存储结果的几行都是你的.

| 关切 | 没有它 | 用这个 |
| --- | --- | --- |
| **页眉解析** | 分开 `Bearer <token>` 自己和处理错误的数值 | 为您解析; 错误的页眉扔出 |
| **核查** | 获取每个框架的密钥或调用回顾 | 一个 `TokenVerifier`本地或远程的,与其他运输工具共享 |
| **在信头外键入** | 手写 cookie 或查询回退 | `tokenByRequest` 没有时读取倒数 `Authorization` 发送信头 |
| **约束令牌** | 比较证书缩写 | `certificateThumbprintByRequest` 输入 RFC 8705 检查 |

## 安装

```shell
npm install @authup/server-adapter-web @authup/server-adapter-kit
```

`TokenVerifier` 来自 `@authup/server-adapter-kit`,直接导入。 这套方案只采用无害环境管理,没有同级依赖关系。 内容 `engines` 字段请求节点.js `>=26.0.0`; 核查包导入 `node:crypto`,所以另一个运行时间必须解决节点内置.

## 使用量

### 获取处理器

```typescript
import { TokenVerifier } from '@authup/server-adapter-kit';
import { verifyRequest } from '@authup/server-adapter-web';

const tokenVerifier = new TokenVerifier({ baseURL: 'https://auth.example.com' });

export async function handle(request: Request): Promise<Response> {
    let data;
    try {
        data = await verifyRequest(request, { tokenVerifier });
    } catch {
        return new Response('invalid token', { status: 401 });
    }

    if (!data) {
        return new Response('unauthenticated', { status: 401 });
    }

    return new Response(`hello ${data.sub}`);
}
```

`verifyRequest` 解析核查数据,解析 `undefined` 当请求无任何迹象的时候 `Authorization` 标题或符号 核查者拒绝.

见 [`@authup/server-adapter-kit`](https://github.com/authup/authup/tree/master/packages/server-adapter-kit) 用于本地对远程验证、缓存和权限.

### 交给你的处理者

```typescript
import type { TokenVerificationData } from '@authup/server-adapter-kit';

type AuthedHandler = (request: Request, auth: TokenVerificationData) => Response | Promise<Response>;

function withAuth(handler: AuthedHandler) {
    return async (request: Request): Promise<Response> => {
        const auth = await verifyRequest(request, { tokenVerifier }).catch(() => undefined);
        if (!auth) {
            return new Response(null, { status: 401 });
        }

        return handler(request, auth);
    };
}

export const orders = withAuth((_request, auth) => new Response(`orders of ${auth.sub}`));
```

索赔旅费作为论据,打过一次字,而不是附在索赔表上 `Request`在有其自身背景目标的框架内,通过框架的基础 `Request` (呼诺: `c.req.raw`),并将结果保存在这一背景下.

### 从别处读取代号

```typescript
const data = await verifyRequest(request, {
    tokenVerifier,
    tokenByRequest: (req) => new URL(req.url).searchParams.get('access_token') ?? undefined,
});
```

`tokenByRequest` 只有在请求没有 `Authorization` 头曰. 其价值可能包括: `Bearer` 前缀或非前缀。 适配器自己不画饼干.

## 选项

| 选项 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `tokenVerifier` | `ITokenVerifier` | (必须) | 通常为: `TokenVerifier` 从 `@authup/server-adapter-kit` |
| `tokenByRequest` | `(request) => string | undefined` | `undefined` | 没有后退符号源 `Authorization` 页眉已存在 |
| `certificateThumbprintByRequest` | `(request) => string | undefined | Promise<string | undefined>` | `undefined` | 客户端证书的 SHA-256 拇指印, 用于印有证书的符号 |

## API 密码

| 导出 | 仁爱 | 目的 |
| --- | --- | --- |
| `verifyRequest` | 函数 | 验证一个 `Request` |
| `VerifyRequestOptions` | 类型 | 上面的选项对象 |

## 页:1

-   **仅 `Bearer` 在标题中被接受.** A 类 `Basic` 或其他计划 `Authorization` 掷出 `BearerTokenMalformedError` (单位:千美元)`bearer_token_malformed`),以及 `tokenByRequest` 未咨询.
-   **校验错误为 `JWTError`编号** (单位:千美元)`invalid_token`, (中文(简体) ), `expired_token`, (中文(简体) ), `inactive_token`) (中文(简体) ). 全部,以及畸形头,映射到HTTP 401.
-   **查询字符串符被代理登录 .** 首页或饼干 `tokenByRequest` 在你能够.

## 许可证

由 所制

现按 [Apache 2.0 许可证](https://npmcn.com/package/%40authup/server-adapter-web/LICENSE)。 。 。 .

## 常见问题

### @authup/server-adapter-web 是什么？

校验网络请求的 Authup 访问令牌, 以它为基础的任何框架 \.

### 如何安装 @authup/server-adapter-web？

在项目目录运行 npm install @authup/server-adapter-web，或使用 pnpm add / yarn add / bun add。

### @authup/server-adapter-web 支持 TypeScript 吗？

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

### @authup/server-adapter-web 支持 ESM 还是 CommonJS？

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

### @authup/server-adapter-web 需要什么版本的 Node\.js？

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

### @authup/server-adapter-web 可以商用吗？

@authup/server-adapter-web 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @authup/server-adapter-web 的下载量有多少？

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

### @authup/server-adapter-web 还在维护吗？

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

