@auth0/auth0-fastify-api

中文文档
1.3.0发布于 2026/05/18MITTypeScriptESM + CJS构建来源已验证近 30 天下载 10.7万

Auth0 SDK 用于在 JavaScript 运行时快速化 API

中文使用文档
文档目录11 节
  1. 文档
  2. 开始
  3. 1. 安装SDK
  4. 3. 为 API 注册 Auth0 快捷插件
  5. DPoP( 证明 )
  6. 顶端交换
  7. 反馈
  8. 捐款
  9. 提出问题
  10. 脆弱性报告
  11. 什么是奥特?

Auth0快取-API SDK是一个用于保护API在快取应用中的库.

Release Downloads License

📚 文档 - 🚀 开始 - 💬 反馈

文档

  • 实例 - 不同用法的例子.
  • Docs 站点 - 探索我们的文件网站 了解更多关于Auth0.

开始

1. 安装SDK

npm i @auth0/auth0-fastify-api

这个库需要Node.js 20 LTS和较新的LTS版本.

3. 为 API 注册 Auth0 快捷插件

将 Auth0 与 Fastify 实例一起注册为 API 的快取插件 .

import fastifyAuth0Api from '@auth0/auth0-fastify-api';

const fastify = Fastify({
  logger: true,
});

fastify.register(fastifyAuth0Api, {
  domain: '<AUTH0_DOMAIN>',
  audience: '<AUTH0_AUDIENCE>',
});

这个 AUTH0_DOMAIN 可从 Auth0 剪贴板 一旦你创造了API. 这个 AUTH0_AUDIENCE 是正在调用的 API 的标识符。 您可以在 Auth0 仪表板的 API 部分中找到这个 .

保护 API 路由

为了保护 API 路径, 您可以使用 SDK 的 requireAuth() 前汉德勒中的方法 :

fastify.register(() => {
  fastify.get(
    '/protected-api',
    {
      preHandler: fastify.requireAuth(),
    },
    async (request: FastifyRequest, reply) => {
      return `Hello, ${request.user.sub}`;
    }
  );
});

SDK将从信使中提取的债权暴露为 user 财产 FastifyRequest 对象. 为了使用自定义用户类型来代表自定义要求,您可以配置 Token 模块中类型 :

declare module '@auth0/auth0-fastify-api' {
  interface Token {
    id: number;
    name: string;
    age: number;
  }
}

这样做将更改用户类型 FastifyRequest 自动对象 :

fastify.register(() => {
  fastify.get(
    '/protected-api',
    {
      preHandler: fastify.requireAuth(),
    },
    async (request: FastifyRequest, reply) => {
      return `Hello, ${request.user.name}`;
    }
  );
});

[大
以上是用无记名符号保护API路由,而不是使用会话保护服务器侧渲染路由.

DPoP( 证明 )

DPoP将访问令牌绑定在一个特定的客户端的密钥对上,防止被窃取的令牌被攻击者重放. SDK以三种模式支持DPop:

  • allowed (默认) : 接受 Bearer 和 DPop 绑定符 .
  • required:仅接受DPoP捆绑的活字符号;拒绝熊克活字符号.
  • disabled: DPoP被忽略; 仅以熊为主的行为.
import fastifyAuth0Api from '@auth0/auth0-fastify-api';

const fastify = Fastify({ logger: true });

fastify.register(fastifyAuth0Api, {
  domain: '<AUTH0_DOMAIN>',
  audience: '<AUTH0_AUDIENCE>',
  dpop: { mode: 'required' },
});

当 DPOP 启用时,客户端发送 :

  1. 一个 Authorization: DPoP <access_token> 页眉( 代替 Bearer) (中文(简体) ).
  2. A 类 DPoP 包含与请求方法和 URL 绑定的 JWT 证据的头条 .

SDK 自动从请求中取出 DPop 证明, 并对照访问符验证它 cnf.jkt ,并核实证明与当前 HTTP 方法和 URL 匹配.

关于完整的配置参考文献和错误处理细节,参见 EXAMPLES.md中的DPOP部分。 。 。 .

顶端交换

使用 fastify.auth0Client.getTokenOnBehalfOf() 当您快速化 API 需要代表同一用户调用下游 API时,例如在 MCP 服务器中. 该方法在保留用户身份的同时,将所接收到的访问令牌换成被放入下游API范围的新信使.

getTokenOnBehalfOf() 需要保密客户。 注册插件为 clientId 财务报告和审定财务报表 clientSecret (或 clientAssertionSigningKey 用于客户断言认证).

import fastifyAuth0Api from '@auth0/auth0-fastify-api';

const fastify = Fastify({ logger: true });

fastify.register(fastifyAuth0Api, {
  domain: '<AUTH0_DOMAIN>',
  audience: '<AUTH0_AUDIENCE>',
  clientId: '<AUTH0_CLIENT_ID>',
  clientSecret: '<AUTH0_CLIENT_SECRET>',
});

fastify.register(() => {
  fastify.post(
    '/schedule-meeting',
    {
      preHandler: fastify.requireAuth(),
    },
    async (request: FastifyRequest) => {
      // request.getToken() returns the raw JWT without the `Bearer ` prefix.
      const obo = await fastify.auth0Client!.getTokenOnBehalfOf(request.getToken()!, {
        audience: 'https://calendar-api.example.com',
        scope: 'calendar:read calendar:write',
      });

      const response = await fetch('https://calendar-api.example.com/meetings', {
        method: 'POST',
        headers: { authorization: `Bearer ${obo.accessToken}` },
        body: JSON.stringify(request.body),
      });

      return response.json();
    }
  );
});

关于包括处理出错、行为索赔检查和下游核查员模式在内的全程通行情况,请参见 顶端交换 节 缩略语.md。 。 。 .

反馈

捐款

我们赞赏反馈和对这次再投资的贡献! 在开始前,请阅读以下内容:

提出问题

请提供反馈或报告错误 提出我们的问题追踪器。 。 。 .

脆弱性报告

请不要在公共 GitHub 问题跟踪器上报告安全漏洞 。 这个 负责任的披露程序 详细说明披露安全问题的程序.

什么是奥特?

Auth0 Logo

Auth0是一个易于执行,可适应的认证和授权平台. 学习更多退房 为什么是Auth0?

这个项目根据麻省理工学院的许可证获得许可。 见 自由主义 需要更多信息的文件.

版本与发布记录

@auth0/auth0-fastify-api 共发布 7 个版本,首次发布于 2025/03/28;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.3.0latest2026/05/185 个月前
1.2.02026/04/106 个月前
1.1.02025/10/021.1 年前
1.0.32025/09/021.2 年前
1.0.22025/06/051.4 年前
1.0.12025/03/291.6 年前

关于 @auth0/auth0-fastify-api 的常见问题

@auth0/auth0-fastify-api 是什么?

Auth0 SDK 用于在 JavaScript 运行时快速化 API

如何安装 @auth0/auth0-fastify-api?

在项目目录运行 npm install @auth0/auth0-fastify-api,或使用 pnpm add / yarn add / bun add。

@auth0/auth0-fastify-api 支持 TypeScript 吗?

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

@auth0/auth0-fastify-api 支持 ESM 还是 CommonJS?

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

@auth0/auth0-fastify-api 可以商用吗?

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

@auth0/auth0-fastify-api 的下载量有多少?

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

@auth0/auth0-fastify-api 还在维护吗?

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