[ PROMPT_NODE_23904 ]
clerk-auth
[ SKILL_DOCUMENTATION ]
# Clerk 身份验证
## 模式
### Next.js App Router 设置
针对 Next.js 14/15 App Router 的完整 Clerk 设置。
包含 ClerkProvider、环境变量以及基础的登录/注册组件。
关键组件:
- ClerkProvider:包裹应用以提供认证上下文
- , :预构建的认证表单
- :带有会话管理的用户菜单
### 中间件路由保护
使用 clerkMiddleware 和 createRouteMatcher 保护路由。
最佳实践:
- 在项目根目录使用单一 middleware.ts 文件
- 使用 createRouteMatcher 处理路由组
- 使用 auth.protect() 进行显式保护
- 在中间件中集中处理所有认证逻辑
### 服务器组件身份验证
在服务器组件中使用 auth() 和 currentUser() 获取认证状态。
关键函数:
- auth():返回 userId, sessionId, orgId, claims
- currentUser():返回完整的用户对象
- 两者都需要配置 clerkMiddleware
## ⚠️ 注意事项
| 问题 | 严重程度 | 解决方案 |
|-------|----------|----------|
| 问题 | 关键 | 参见文档 |
| 问题 | 高 | 参见文档 |
| 问题 | 高 | 参见文档 |
| 问题 | 高 | 参见文档 |
| 问题 | 中 | 参见文档 |
| 问题 | 中 | 参见文档 |
| 问题 | 中 | 参见文档 |
| 问题 | 中 | 参见文档 |