Skip to main content

用户认证

Codofly Template 使用 NextAuth.js 5 提供完整的用户认证解决方案。

NextAuth.js 配置

基础配置

lib/auth.ts

Route Handler

app/api/auth/[...nextauth]/route.ts

登录方式配置

GitHub 登录

在 GitHub Developer Settings 中:
  1. 创建 OAuth App
  2. 设置回调 URL: http://localhost:3000/api/auth/callback/github

Google 登录

在 Google Cloud Console 中:
  1. 创建 OAuth 2.0 客户端
  2. 设置回调 URL: http://localhost:3000/api/auth/callback/google

邮箱密码登录

lib/auth-utils.ts

会话管理

获取会话信息

components/user-profile.tsx

服务端获取会话

app/dashboard/page.tsx

权限控制

页面级权限保护

components/auth/protected-page.tsx

API 路由保护

lib/auth-middleware.ts

组件级权限

components/auth/role-guard.tsx

用户信息管理

更新用户信息

app/api/user/profile/route.ts

客户端更新

components/profile-form.tsx

登出功能

客户端登出

components/logout-button.tsx

服务端登出

app/api/auth/signout/route.ts

中间件配置

middleware.ts

会话提供者

components/providers/session-provider.tsx
确保在根布局中包装 SessionProvider 以在整个应用中使用会话功能。

最佳实践

  1. 安全的密钥管理 - 使用强随机字符串作为 NEXTAUTH_SECRET
  2. 会话过期 - 合理设置会话过期时间
  3. 权限细分 - 根据业务需求设计权限系统
  4. 错误处理 - 优雅处理认证失败情况
查看 NextAuth.js 文档 了解更多配置选项。