- 文档首页
AI 原生 BaaS 平台 Supabase 版
用户指南
Supabase 引擎用户指南
使用 Supabase 控制台
使用 Authentication
设置 Auth Hooks
使用 Authentication
设置 Auth Hooks
设置 Auth Hooks
Auth Hooks(认证钩子)是 Supabase Auth 提供的扩展机制,允许您在用户认证流程的关键节点(如用户创建前后、登录前后、发送邮件/短信前后等)插入自定义逻辑,实现诸如邮箱白名单校验、自定义 Token 声明、异步事件通知等业务能力。
本文介绍如何在 Supabase 控制台或通过 Admin API 为应用配置 Auth Hooks。当前共支持 8 种 Hook 类型,并支持以下增强能力:
- 传递 JWT Token:HTTPS Hook 可携带用户 JWT,便于回调端做身份校验。
- 异步聚合:HTTPS Hook 可按数量或时长阈值聚合后批量触发,降低对回调端的压力。
🛡️ 注册前置校验
通过 Before User Created Hook 校验用户邮箱、手机号是否符合业务规则(如限制公司邮箱、过滤黑名单等),不合规则阻断注册。
🔐 自定义 JWT Claims
通过 Custom Access Token Hook 在颁发 JWT 时注入业务自定义的 Claims(如租户 ID、角色信息),扩展 JWT 的业务语义。
📨 自定义短信/邮件模板
通过 Send SMS / Send Email Hook 接管 OTP 等通知的发送逻辑,对接企业内部短信网关或邮件服务。
📊 异步事件通知
通过 After User Created / Signed In / SMS Sent Hook 异步接收认证事件,便于做用户画像、风控、数据分析等下游处理。
- 已创建使用 Supabase 引擎的 Workspace,且该 Workspace 处于运行中状态。详细操作请参见创建 Workspace。
- 已获取 SUPABASE_BASE_URL、SERVICE_ROLE_KEY 和 SUPABASE_ANON_KEY。关于获取变量的详细信息,请参见获取变量。
- 在 Supabase 控制台左侧导航栏单击 Authentication,进入 Authentication 页面。
- 在 Authentication 页面,单击 Auth Hooks 标签页。
- 单击 Add hook 下拉按钮,选择需要的 Hook 类型,进行配置。
- 或单击已有 Hook 的 Configure hook 按钮,修改其配置。
- 在弹出的配置页面,根据需要选择 Hook 模式(Postgres 或 HTTPS),并完成参数配置:
- Postgres 模式:选择 Postgres Schema 和 Postgres Function,并填写相关 Statements。Hook 触发时将调用该 Postgres Function。
- 填写 URL(回调地址)和 Secret(用于校验请求合法性)。
- (可选)开启 Include JWT in Header,向回调端传递用户 JWT Token;开启后需配置 JWT Time-to-Live(默认 300 秒)。
- (可选)开启 Enable aggregation,启用异步聚合;开启后需配置 Aggregation Count Threshold(累计调用次数阈值)和 Aggregation Duration Threshold(累计时长阈值)。
主要配置项如下。其中 ${HOOKNAME} 为占位符,需要替换为上节表格中的 “HOOKNAME 枚举值”。
- 修改配置的示例,其中 body 为上节表格中的 配置项 Key 和 配置项 Value 组成的 JSON Map
以 Before User Created Hook 为例,HTTPS Endpoint 可编写为一个 Edge Function(实现公司邮箱白名单校验):
仍然以 BEFORE_USER_CREATED 为例,PostgreSQL Hook Function 编写如下:
重要
Hook 调用存在超时与重试限制,请确保回调端能在规定时间内响应,避免影响用户认证流程。
不同 Hook 模式的超时与重试规则如下:
说明
超过重试上限后,系统将不再继续重试,仅记录错误日志。Hook 是否阻塞用户交互可参考上文「支持的 Hook 列表」中的「是否阻塞用户交互字段。
最近更新时间:2026.06.16 16:40:46