Rich365 现已支持用户登录功能,使用 Supabase 作为认证和数据库服务。
支持的登录方式:
- ✉️ 邮箱密码登录/注册
- 🔐 Google OAuth 登录
- 访问 Supabase 并注册/登录
- 点击 "New Project"
- 填写项目信息:
- Name:
rich365 - Database Password: 设置一个强密码(请保存好)
- Region: 选择离你最近的区域
- Name:
- 点击 "Create new project" 并等待初始化完成
- 在 Supabase 项目中,点击左侧菜单的
Settings(齿轮图标) - 点击
API - 找到并复制以下信息:
- Project URL:
https://xxx.supabase.co - anon public key:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
- Project URL:
创建 .env.local 文件(在项目根目录):
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=你的_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=你的_anon_public_key
# Site URL
NEXT_PUBLIC_SITE_URL=http://localhost:3000注意: .env.local 已在 .gitignore 中,不会被提交到 git。
- 在 Supabase 项目中,点击左侧菜单的
SQL Editor - 点击 "+ New query"
- 打开
supabase/schema.sql文件 - 复制全部内容并粘贴到 SQL Editor
- 点击 "Run" 执行 SQL
这将创建以下表:
user_profiles: 用户 MBTI 和职业配置check_in_records: 打卡记录user_stats: 用户统计数据used_actions: 已使用的行动记录
- 访问 Google Cloud Console
- 创建新项目或选择现有项目
- 启用 "Google+ API"
- 前往 "APIs & Services" > "Credentials"
- 点击 "+ CREATE CREDENTIALS" > "OAuth client ID"
- 选择 "Web application"
- 填写信息:
- Name:
Rich365 - Authorized JavaScript origins:
http://localhost:3000(开发)https://rich365.ai(生产)
- Authorized redirect URIs:
http://localhost:3000/auth/callbackhttps://rich365.ai/auth/callbackhttps://YOUR_PROJECT_REF.supabase.co/auth/v1/callback
- Name:
- 复制 Client ID 和 Client Secret
- 在 Supabase 项目中,点击
Authentication>Providers - 找到 "Google" 并点击展开
- 启用 "Google enabled"
- 填入:
- Client ID (从 Google 获取)
- Client Secret (从 Google 获取)
- 点击 "Save"
- 启动开发服务器:
npm run dev-
点击右上角的"登录"按钮
-
尝试:
- 邮箱注册(会收到确认邮件)
- 邮箱登录
- Google 登录
- 访问 Vercel 项目设置
- 前往 "Settings" > "Environment Variables"
- 添加以下变量:
NEXT_PUBLIC_SUPABASE_URL=你的_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=你的_anon_public_key
NEXT_PUBLIC_SITE_URL=https://rich365.ai
- 重新部署项目
- 在 Supabase 项目中,点击
Authentication>URL Configuration - 设置:
- Site URL:
https://rich365.ai - Redirect URLs: 添加以下 URL
https://rich365.ai/**https://rich365.ai/auth/callback
- Site URL:
- 点击 "Save"
A:
- 检查垃圾邮件文件夹
- 开发环境可以在 Supabase 中禁用邮箱确认:
- 前往
Authentication>Providers>Email - 禁用 "Confirm email"
- 前往
A: 确保 Google Console 中配置的回调 URI 与实际使用的完全匹配,包括:
- http vs https
- localhost vs 域名
- 端口号
A: 检查 middleware.ts 配置,确保路由保护正确
A:
- 检查 RLS 策略是否正确配置
- 确保用户已登录
- 检查浏览器 Console 是否有错误
rich365/
├── lib/supabase/
│ ├── client.ts # 浏览器端 Supabase 客户端
│ ├── server.ts # 服务器端 Supabase 客户端
│ └── middleware.ts # 认证中间件
├── app/
│ ├── login/ # 登录页面
│ │ └── page.tsx
│ └── auth/
│ └── callback/ # OAuth 回调处理
│ └── route.ts
├── components/
│ └── user-menu.tsx # 用户菜单组件
├── supabase/
│ ├── schema.sql # 数据库结构
│ └── README.md # Supabase 设置详细说明
├── middleware.ts # Next.js 中间件(路由保护)
└── .env.local.example # 环境变量示例
- ✅ 所有数据表启用行级安全(RLS)
- ✅ 用户只能访问自己的数据
- ✅ 密码使用 bcrypt 加密
- ✅ OAuth 使用 PKCE 流程
- ✅ JWT Token 自动刷新
- 在 Supabase 中可以查看实时用户和数据
- 建议在生产环境配置邮件模板
- 可以添加更多 OAuth 提供商(GitHub、Facebook 等)
- 记得定期备份数据库
需要帮助? 查看 supabase/README.md 获取更详细的配置说明。