名称: clerk-auth 描述: “Clerk认证实现的专家模式,包括中间件、组织、Webhooks和用户同步。使用场景:添加认证、Clerk认证、用户认证、登录、注册。” 来源: vibeship-spawner-skills (Apache 2.0)
Clerk认证
模式
Next.js App路由设置
完整的Clerk设置,适用于Next.js 14/15应用路由器。
包括ClerkProvider、环境变量和基本的登录/注册组件。
关键组件:
- ClerkProvider:包装应用以提供认证上下文
- <SignIn />、<SignUp />:预构建的认证表单
- <UserButton />:带有会话管理的用户菜单
中间件路由保护
使用clerkMiddleware和createRouteMatcher保护路由。
最佳实践:
- 在项目根目录创建一个单一的middleware.ts文件
- 使用createRouteMatcher进行路由分组
- auth.protect()用于显式保护
- 将所有认证逻辑集中在中间件中
服务器组件认证
使用auth()和currentUser()访问服务器组件中的认证状态。
关键函数:
- auth():返回userId、sessionId、orgId、claims
- currentUser():返回完整的User对象
- 两者都需要配置clerkMiddleware
⚠️ 注意事项
| 问题 | 严重性 | 解决方案 |
|---|---|---|
| 问题 | 严重 | 参见文档 |
| 问题 | 高 | 参见文档 |
| 问题 | 高 | 参见文档 |
| 问题 | 高 | 参见文档 |
| 问题 | 中等 | 参见文档 |
| 问题 | 中等 | 参见文档 |
| 问题 | 中等 | 参见文档 |
| 问题 | 中等 | 参见文档 |