SuperAPI AI 工具集

clerk-common-errors

安全与审计

查看项目

更新于 10-15 22:42

技能介绍

用途:诊断并解决 Clerk 认证集成中的常见错误,按错误类别给出根因分析与修复代码。触发场景包括认证错误、SDK 问题或配置问题。

主要能力:覆盖五类错误。配置类如缺少 publishableKey、ClerkProvider 未包裹应用;认证类如 form_identifier_not_found、form_password_incorrect、session_exists;中间件类如无限重定向循环、auth() 被调用但未检测到 Clerk 中间件;服务端/客户端组件类如在 Server Component 中使用 useUser()、认证状态 hydration mismatch;Webhook 类如签名无效。

必要用法:需已安装 Clerk SDK、可访问 Clerk Dashboard 验证配置、使用浏览器开发者工具。安装检查:npm list @clerk/nextjs 2>/dev/null;环境变量检查:node -e "console.log('PK:', !!process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, 'SK:', !!process.env.CLERK_SECRET_KEY)";API 连通性:curl -s -o /dev/null -w "%{http_code}" -H "Authorization: Bearer $CLERK_SECRET_KEY" https://api.clerk.com/v1/users?limit=1;中间件位置:ls middleware.ts 2>/dev/null && echo "Found" || echo "Missing - create middleware.ts at project root"。

关键修复要点:环境变量写入 .env.local 的 NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY;在根布局用 ClerkProvider 包裹;将 sign-in/sign-up 加入 isPublicRoute 匹配器避免重定向循环;middleware.ts 放在项目根目录(不在 app/ 或 src/ 内);服务端用 auth()/currentUser(),客户端用 useUser();用 isLoaded 守卫避免 hydration mismatch;Webhook 验证前用 req.text() 而非 req.json() 读取原始请求体。

限制:资料未提供价格、版本支持范围、官方文档链接与具体平台兼容性,暂未提供。后续可参考 clerk-debug-bundle 获取更全面调试工具。