Clerk 身份认证
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/clerk-auth-zh。
技能介绍
要解决的问题
在 Next.js 14/15 App Router 中接入 Clerk 时,容易把认证上下文、环境变量、登录组件和路由保护散落在页面组件里,导致 会话判断不一致 和 受保护路由遗漏。本技能把 Clerk 认证收敛为一套可复用的 App Router 模式,减少手工拼装 ClerkProvider、auth() 和中间件时常见的配置偏差。
技能如何工作
它围绕三个关键点组织:
- 应用上下文:用
ClerkProvider包裹应用,配置环境变量,并提供基本的登录/注册组件。 - 路由保护:在根目录维护单个
middleware.ts,使用clerkMiddleware和createRouteMatcher做路由分组,并通过auth.protect()显式保护敏感路径。 - 服务器组件认证:在 Server Component 中调用
auth()获取userId、sessionId、orgId、claims,调用currentUser()获取完整用户对象。
关键边界是:服务器组件中的认证函数依赖 Clerk 中间件提供的请求上下文,因此中间件不能只是可选增强,而应作为认证逻辑的集中入口。
适用边界
该技能适合使用 Next.js App Router 和 Clerk 的项目,重点覆盖认证设置与受保护路由。它不替代业务权限模型,也不会为页面组件、数据库权限或第三方身份源做额外抽象。资料中的潜在问题表为占位内容,具体严重度和解决方案需结合 Clerk 文档确认。
使用场景
- 给 Next.js App Router 管理后台项目接入 Clerk 登录、注册、Provider 和环境变量。
- 用根目录 middleware.ts 对 Next.js 后台路由做 Clerk 会话保护、路由匹配和分组。
- 在服务器组件里用 auth() 与 currentUser() 读取用户、会话和组织信息。
- 把用户菜单、登录表单和受保护路由收敛到一套可审查的 Clerk 模式。
适合人员
- 维护 Next.js 管理后台的前端工程师,需要接入 Clerk 登录态和受保护页面。
- 负责路由守卫的全栈工程师,需要用 middleware 集中处理 Clerk 会话检查。
- 搭建 SaaS 模板的全栈工程师,需要可复制的 Provider、登录页和用户菜单。
- 排查登录失效的前端工程师,需要核对服务器组件中的 auth 与 currentUser 调用。