身份验证
概述
学习如何在 NEXTDEVKIT 中使用 Better Auth 设置和使用身份验证
NEXTDEVKIT 使用 Better Auth 进行身份验证,提供一个灵活安全的系统,支持多种身份验证方法、会话管理和基于角色的访问控制。
🚀 设置
要在 NEXTDEVKIT 中设置身份验证,请配置必要的环境变量:
1. 生成 Better Auth 密钥
BETTER_AUTH_SECRET
是用于加密和生成哈希的随机字符串:
# 生成安全密钥
openssl rand -base64 32
将其添加到您的 .env
文件:
BETTER_AUTH_SECRET="your_generated_secret_key"
2. 配置 Google OAuth
要启用 Google 身份验证:
- 转到 Google Cloud Console
- 创建新项目或选择现有项目
- 导航到 "Credentials" → "Create Credentials" → "OAuth client ID"
- 如需要,配置 OAuth 同意屏幕
- 设置 OAuth 客户端 ID:
- 应用程序类型:Web 应用程序
- 已授权的 JavaScript 来源:
https://your-domain.com
- 已授权的重定向 URI:
https://your-domain.com/api/auth/callback/google
添加到您的 .env
文件:
GOOGLE_CLIENT_ID="your_google_client_id"
GOOGLE_CLIENT_SECRET="your_google_client_secret"
3. 配置 GitHub OAuth
要启用 GitHub 身份验证:
- 转到 GitHub Developer Settings
- 点击 "OAuth Apps" → "New OAuth App"
- 填写注册表单:
- 应用程序名称:NEXTDEVKIT
- 主页 URL:
https://your-domain.com
(开发环境使用http://localhost:3000
) - 授权回调 URL:
https://your-domain.com/api/auth/callback/github
- 复制 客户端 ID 和 客户端密钥
添加到您的 .env
文件:
GITHUB_CLIENT_ID="your_github_client_id"
GITHUB_CLIENT_SECRET="your_github_client_secret"
💡 提示:为生产和开发环境创建不同的 OAuth 应用程序,使用不同的回调 URL。
🏗️ 身份验证架构
NEXTDEVKIT 的身份验证系统包括:
src/
├── lib/
│ ├── auth.ts # 主要 Better Auth 配置
│ └── auth/
│ ├── server.ts # 服务器端认证工具
│ ├── client.ts # 客户端认证工具
│ ├── api.ts # API 工具
│ ├── edge.ts # Edge 运行时工具
│ └── errors.ts # 认证错误处理
├── components/
│ └── auth/
│ ├── login-form.tsx
│ ├── signup-form.tsx
│ ├── social-signin.tsx
│ └── forgot-password-form.tsx
⚙️ 核心配置
主要身份验证配置在 src/lib/auth.ts
中:
🔧 核心功能
📧 邮箱密码身份验证
- 邮箱验证 新账户必须验证
- 密码重置 功能
- 邮箱更改 需验证
- 安全密码 哈希
🔗 社交身份验证
- Google OAuth 集成
- GitHub OAuth 集成
- 提供商之间的 账户关联
- 可信提供商 配置
🍪 会话管理
- 基于 Cookie 的会话
- 会话缓存 提高性能
- 可配置过期 时间
- 新会话 跟踪
👤 用户管理
- 用户删除 功能
- 附加字段(语言、客户 ID)
- 基于角色 的访问控制
🔗 相关资源
🎯 下一步
现在您了解了数据库架构,深入了解您选择的平台的具体设置: