用途:该技能面向 Clerk 认证的实现,覆盖 Next.js 应用中的登录、注册、会话管理与路由保护等常见需求,适合在添加认证、接入 Clerk、处理用户同步时参考。
主要能力:
- Next.js App Router 集成:提供 Next.js 14/15 App Router 的完整 Clerk 配置模式,包括 ClerkProvider、环境变量以及基础登录/注册组件。关键组件包括 ClerkProvider(为应用包裹认证上下文)、预构建的登录与注册表单,以及带会话管理的用户菜单。
- 中间件路由保护:使用 clerkMiddleware 与 createRouteMatcher 保护路由。建议在项目根目录维护单一 middleware.ts 文件,用 createRouteMatcher 处理路由组,用 auth.protect() 做显式保护,并将所有认证逻辑集中在中间件中。
- 服务端组件鉴权:在 Server Components 中通过 auth() 与 currentUser() 访问认证状态。auth() 返回 userId、sessionId、orgId、claims;currentUser() 返回完整 User 对象。两者都要求先配置 clerkMiddleware。
使用方式:按资料所述,在 Next.js 项目中配置 ClerkProvider 与环境变量,在根目录建立 middleware.ts 并集中处理认证逻辑,在服务端组件中调用 auth() 或 currentUser() 获取会话与用户信息。
适用场景:需要为 Next.js 应用添加认证、实现路由级权限控制、读取服务端会话状态,以及涉及组织、Webhook 与用户同步的 Clerk 集成场景。
限制:资料仅列出若干“Sharp Edges”问题及其严重级别(critical、high、medium),但具体问题描述与解决方案均指向文档,未提供细节;组织、Webhook 与用户同步的具体实现步骤在现有资料中也未展开,需查阅官方文档确认。