点击上方卡片关注我
设置星标 分享更多AI 编程出海
很多刚开始做 AI 编程项目 的朋友(尤其是用 Cursor、Claude Code 或 V0 直接搭建网站的),都会遇到这样的问题:“我按照提示配置了 Clerk 的 API key、Webhook,登录功能也能用了,但我完全不明白这些到底在干什么。”
其实,这背后不是魔法,而是一整套现代化的 全栈协作体系,它能让你的项目自动完成“登录注册 → 验证身份 → 同步数据 → 展示用户信息”的整个流程。
这一体系包括五个核心组件:
Clerk(身份认证) + Supabase(数据库) + Webhook(事件通知) + ngrok(本地调试) + Next.js(前后端框架)
很多人能用 Cursor 把它跑起来,但没理解背后的机制,这篇文章,会用通俗易懂的方式帮助你更好的理解。
核心组件的重要职责
工具 |
一句话解释 |
类比 |
|---|---|---|
| Clerk | 负责网站的登录注册、身份认证、会话管理 |
🪪 门卫 |
| Supabase | 存储网站数据,并通过行级安全(RLS)控制访问权限 |
🏢 仓库管理员 |
| Next.js | 网站的“大脑”,处理前端页面与后端逻辑 |
🧠 中控系统 |
| Webhook | Clerk 有新事件时,主动“打电话”通知你的后端 |
☎️ 电话通知 |
| ngrok | 让你本地运行的网站临时拥有公网地址 |
🌉 调试桥梁 |
这五个模块像齿轮一样配合,形成自动化的开发闭环:用户登录 → Clerk 认证 → Webhook 通知 → Next.js 处理 → Supabase 存储 → 前端展示。
从登录到入库:一次完整的“幕后流程”
假设用户点击网站上的“登录”,后台其实发生了以下九步:
① 用户输入邮箱和密码点击登录
↓
② 前端(Clerk SDK)把登录信息发给 Clerk 云端
↓
③ Clerk 云端验证身份(邮箱、密码或 OAuth 登录)
↓
④ 验证成功后生成 Session(登录状态)
↓
⑤ 同时触发 Webhook(如 user.created / session.created)
↓
⑥ Clerk 向你的网站 /api/webhooks/clerk 发出 POST 请求
↓
⑦ Next.js 接收 Webhook,验证签名后解析事件
↓
⑧ Next.js 调用 Supabase API 更新或创建用户数据
↓
⑨ 前端通过 Clerk SDK 获取登录状态并展示“你好,XXX”
整个流程全部自动完成,无需手写登录逻辑。
每个部分到底做什么?
1、Clerk:负责“我是谁”
Clerk 是网站的身份认证中心,它提供现成的登录、注册、重置密码、第三方登录(Google/GitHub 等)组件。
示例代码:
import { SignIn } from "@clerk/nextjs";
export default function Page() {
return <SignIn />;
}
Clerk 云端完成的工作包括:
验证邮箱、密码或验证码;
生成 Session(会话令牌);
维护登录状态;
提供社交登录;
触发 Webhook 事件。
这些信息都保存在 Clerk 自己的云端数据库 中,不需要自己建“用户表”,也不用操心加密和安全问题。
2、Supabase:负责“我能看什么”
Supabase 是一个托管版的 PostgreSQL 数据库 + API 服务,负责存储你网站的业务数据,并通过 行级安全(RLS) 控制访问权限。
RLS 规则示例:
create policy "用户只能查看自己的数据"
on projects
for all
using (auth.uid() = owner_id);
这条规则的意思是: 当前登录用户只能访问自己创建的数据行。
Supabase 自身不处理“用户登录验证”, 但它会对请求附带的 JWT(由 Clerk 提供) 进行校验, 以决定当前用户是否有权访问某条数据。
✅ 简单理解:
Clerk 负责「身份认证(Auth)」;
Supabase 负责「访问授权(A***ess Control)」。
3、Webhook:让系统之间“能对话”
Webhook 是连接 Clerk 与你网站的“事件通道”。
当 Clerk 云端有用户注册、登录、修改资料等事件时,它会主动向已配置的 Webhook 地址发送一条 HTTP POST 请求。
需要在 Clerk Dashboard → Webhooks 中:
新建一个 Endpoint;
填写你的项目地址(例如
https://xxx.ngrok.app/api/webhooks/clerk);选择要监听的事件类型(如
user.created、user.updated);复制生成的
CLERK_WEBHOOK_SECRET到你的环境变量。
Webhook 事件示例:
{
"type": "user.created",
"data": {
"id": "user_123",
"email_addresses": [{ "email_address": "test@example.***" }]
}
}
服务器接收到后,可以自动:
把用户写入 Supabase;
发送欢迎邮件;
初始化积分或日志数据。
4、Next.js:负责“我该怎么响应”
Next.js 是网站的中枢,既能提供前端页面,也能运行服务端逻辑。
在这套体系中,它的核心作用是:
前端使用 Clerk 组件(如 SignIn、UserProfile);
后端接收 Webhook 并操作 Supabase。
Webhook 处理示例:
import { headers } from"next/headers";
import { Webhook } from"svix";
import { NextResponse } from"next/server";
exportasyncfunction POST(req: Request) {
const SIGNING_SECRET = process.env.CLERK_WEBHOOK_SECRET!;
const payload = await req.text();
const wh = new Webhook(SIGNING_SECRET);
const event = wh.verify(payload, {
"svix-id": headers().get("svix-id")!,
"svix-timestamp": headers().get("svix-timestamp")!,
"svix-signature": headers().get("svix-signature")!,
});
if (event.type === "user.created") {
const { id, email_addresses } = event.data;
const email = email_addresses[0]?.email_address;
// 将用户同步到 Supabase
}
return NextResponse.json({ ok: true });
}
这一小段代码就完成了 Clerk 与 Supabase 的联动。
5、ngrok:负责“打通调试通道”
本地开发时,Clerk 云端访问不到 localhost:3000,这时 ngrok 就派上用场了。
运行:
ngrok http 3000
它会生成一个临时 HTTPS 地址,比如:
https://7e2a-xxxx.ngrok.app → http://localhost:3000
把这个地址填进 Clerk 的 Webhook 配置,Clerk 云端就能“打电话”到你本地项目了。
✅ 提示:
ngrok 只在本地开发阶段使用;
正式上线后,Webhook 地址应改成你的真实域名;
可在
http://127.0.0.1:4040查看请求日志并重放调试。
项目上线后,如何继续协作?
当项目从本地开发环境部署到正式的线上环境(比如 Vercel)后,这套系统依然会保持自动运行。唯一的区别是开发阶段需要的 ngrok 不再使用。
在本地调试时,因为 Clerk 云端无法直接访问 localhost:3000,所以需要用 ngrok 建立一个临时的 HTTPS 通道,让 Webhook 能打通本地。
正式上线后,Webhook 的目标地址就变成了你的正式域名,此时 Clerk 会直接向你的网站发送事件通知,而 Supabase、Next.js、Clerk 自身 依然会按照既定逻辑协同工作。
整个体系不需要任何手动干预。
简单理解:ngrok 是本地开发的桥梁,而 Webhook 是生产环境的桥梁。 上线后 ngrok 自动“退场”,但 Webhook 永远是系统运转的核心通道。
总结
真正理解了这五个系统是如何协作的,就会发现,AI 编程的核心不在于“让代码自动生成”,而在于理解系统的自动协作逻辑。
Clerk 负责“谁能登录”;Supabase 管理“能访问什么”;Webhook 负责“谁来通知”;Next.js 决定“如何响应”;ngrok 只是开发阶段打通“外部访问”的临时桥梁。
到这里,你就不再是“照着教程跑项目”的人,而是真正能掌控项目的开发者。
AI编程工具可以帮你节省时间,但系统思维才是开发者的根基,学好这一点,你不仅能开发出能跑的产品,更能维护、优化、拓展它。
💡推荐阅读
如果在编程工具充值使用上遇到麻烦,推荐一个第三方共享平台 aigocode.***,一次性搞定 Codex 和 Claude Code,内容介绍和付费兑换详见文末阅读原文。
这才是 AI 编程的正确打开方式,VSCode + Claude Code 让写代码快到飞起!
Vercel 模板一键部署,上线出海网站比想象中简单!
网站SEO必备工具:Google Search Console 使用教程
Claude Code 和 Codex,一个平台全搞定,开发者狂喜!
卧槽!AI 浏览器半小时让我赚了 700 元!
我们的学员出海作品展示平台上线啦,方便大家获得反馈、积累作品曝光,还会不定期举办创作活动和奖励计划。欢迎你来逛逛。
https://showcase.fyyd.***/
如果你想尝试AI编程出海这个方向,欢迎加入我们。推荐我的 AI 编程出海训练营!
也可扫码或搜索 257735 添加微信,发送暗号「美金」,了解详细信息。