116 lines
2.1 KiB
Markdown
116 lines
2.1 KiB
Markdown
# 立即修复注册问题
|
||
|
||
## 🚨 当前问题
|
||
|
||
注册时返回 500 错误,Supabase 中没有创建用户记录。
|
||
|
||
**原因**:
|
||
- `ENABLE_EMAIL_AUTOCONFIRM=false` - 需要发送确认邮件
|
||
- SMTP 配置错误(`supabase-mail` 服务无法发送邮件)
|
||
- 当邮件发送失败时,Supabase 不会创建用户
|
||
|
||
## ✅ 立即解决方案
|
||
|
||
### 步骤 1:修改 Supabase 配置
|
||
|
||
编辑文件:`supabase_pro/.env`
|
||
|
||
找到这一行:
|
||
```env
|
||
ENABLE_EMAIL_AUTOCONFIRM=false
|
||
```
|
||
|
||
改为:
|
||
```env
|
||
ENABLE_EMAIL_AUTOCONFIRM=true
|
||
```
|
||
|
||
### 步骤 2:重启 Supabase Auth 服务
|
||
|
||
```bash
|
||
cd supabase_pro
|
||
docker-compose restart auth
|
||
```
|
||
|
||
或者重启整个 Supabase:
|
||
```bash
|
||
docker-compose restart
|
||
```
|
||
|
||
### 步骤 3:验证配置
|
||
|
||
```bash
|
||
# 检查配置是否生效
|
||
grep ENABLE_EMAIL_AUTOCONFIRM supabase_pro/.env
|
||
```
|
||
|
||
应该显示:`ENABLE_EMAIL_AUTOCONFIRM=true`
|
||
|
||
### 步骤 4:测试注册
|
||
|
||
1. 在前端注册新用户
|
||
2. 应该看到 "注册成功" 提示
|
||
3. 自动跳转到登录页面
|
||
4. 使用注册的邮箱和密码登录
|
||
5. 应该可以成功登录
|
||
|
||
---
|
||
|
||
## 🔍 验证用户是否创建
|
||
|
||
在 Supabase Dashboard (http://192.168.1.61:3000) 的 SQL Editor 中执行:
|
||
|
||
```sql
|
||
-- 检查最新注册的用户
|
||
SELECT id, email, email_confirmed_at, created_at
|
||
FROM auth.users
|
||
ORDER BY created_at DESC
|
||
LIMIT 5;
|
||
|
||
-- 检查 ak_users 表
|
||
SELECT id, email, username, created_at
|
||
FROM ak_users
|
||
ORDER BY created_at DESC
|
||
LIMIT 5;
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 配置说明
|
||
|
||
### 开发环境推荐配置
|
||
|
||
```env
|
||
## Email auth
|
||
ENABLE_EMAIL_SIGNUP=true
|
||
ENABLE_EMAIL_AUTOCONFIRM=true # 跳过邮件验证,注册后立即可以登录
|
||
```
|
||
|
||
**优点**:
|
||
- ✅ 注册后立即可以登录
|
||
- ✅ 无需配置 SMTP 服务
|
||
- ✅ 适合开发和测试
|
||
|
||
### 生产环境配置
|
||
|
||
如果需要邮件验证,配置真实的 SMTP 服务:
|
||
|
||
```env
|
||
ENABLE_EMAIL_AUTOCONFIRM=false
|
||
SMTP_HOST=smtp.example.com
|
||
SMTP_PORT=587
|
||
SMTP_USER=your-smtp-user
|
||
SMTP_PASS=your-smtp-password
|
||
```
|
||
|
||
---
|
||
|
||
## ⚠️ 重要提示
|
||
|
||
**修改配置后必须重启 Supabase Auth 服务**,否则配置不会生效。
|
||
|
||
```bash
|
||
cd supabase_pro
|
||
docker-compose restart auth
|
||
```
|