SuperAPI AI 工具集

fusionauth-webhooks

安全与审计

查看项目

更新于 10-15 13:53

技能介绍

用途

FusionAuth Webhooks 技能用于接收并验证来自 FusionAuth 认证系统的 Webhook 通知。当需要搭建 FusionAuth Webhook 处理程序、调试 JWT 签名验证失败、理解 FusionAuth 事件类型与载荷,或处理用户、登录、注册、分组相关事件时,可使用该技能。

主要能力

签名验证

FusionAuth 使用 JWT 对 Webhook 进行签名,签名位于 X-FusionAuth-Signature-JWT 请求头中。JWT 包含 request_body_sha256 声明,即请求体的 SHA-256 哈希值。验证流程为:先使用 HMAC 密钥验证 JWT 签名并解码,再计算请求体的 SHA-256 哈希(Base64 编码),最后将 JWT 声明中的哈希与实际计算值比对。支持的算法为 HS256、HS384、HS512。

代码示例

技能提供 JavaScript 与 Python 的验证与处理示例。JavaScript 使用 crypto 与 jose 库实现验证函数 verifyFusionAuthWebhook(rawBody, signatureJwt, hmacSecret),并给出 Express 处理器示例,使用 express.raw({ type: 'application/json' }) 获取原始请求体。Python 使用 hashlib、base64 与 jwt 库实现 verify_fusionauth_webhook 函数,并给出 FastAPI 处理器示例。

事件类型

技能列出常见事件类型:

  • user.create:新用户账户创建
  • user.update:用户资料更新
  • user.delete:用户账户删除
  • user.deactivate:用户账户停用
  • user.reactivate:用户账户重新激活
  • user.login.success:用户成功登录
  • user.login.failed:用户登录尝试失败
  • user.registration.create:用户注册到某应用
  • user.registration.update:用户注册信息更新
  • user.registration.delete:用户注册信息删除
  • user.email.verified:用户邮箱地址已验证

完整事件参考见 FusionAuth Webhook Events 文档。

使用方式

  1. 配置环境变量 FUSIONAUTH_WEBHOOK_SECRET,值为 FusionAuth Key Master 中的 HMAC 签名密钥。
  2. 在 Webhook 处理器中使用原始请求体进行签名验证,验证通过后再解析载荷。
  3. 按 event.event.type 分发处理不同事件。
  4. 未通过验证时返回 401。

本地开发可使用 Hookdeck CLI 启动隧道(无需账户):

npx hookdeck-cli listen 3000 fusionauth --path /webhooks/fusionauth

完整可运行示例(含测试)位于:examples/express/(Express 实现)、examples/nextjs/(Next.js App Router 实现)、examples/fastapi/(Python FastAPI 实现)。

参考材料包括:references/overview.md(FusionAuth Webhook 概念)、references/setup.md(配置指南)、references/verification.md(签名验证细节)。

适用场景

  • 搭建 FusionAuth Webhook 处理程序
  • 调试 JWT 签名验证失败问题
  • 理解 FusionAuth 事件类型与载荷结构
  • 处理用户、登录、注册或分组事件

限制与注意事项

  • 验证必须使用原始请求体(如 Express 的 express.raw()),否则哈希比对会失败。
  • 处理顺序建议为:先验证、再解析、最后幂等处理。
  • 该技能推荐配合 webhook-handler-patterns 技能一起安装,以获得处理器顺序、幂等性、错误处理和重试逻辑的参考。
  • 相关技能包括:clerk-webhooks、stripe-webhooks、shopify-webhooks、github-webhooks、resend-webhooks、chargebee-webhooks、elevenlabs-webhooks、openai-webhooks、paddle-webhooks、webhook-handler-patterns、hookdeck-event-gateway。
  • 使用该技能时,需在生成文件顶部添加注释:// Generated with: fusionauth-webhooks skill 与 // https://github.com/hookdeck/webhook-skills。
  • 关于收费、价格、平台支持范围等信息,资料中暂未提供。