Files
medical-mall/pages/user/test/DEBUG_SIGNUP.md

168 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 注册问题调试指南
## 🔍 当前问题
修改配置后,注册仍然没有创建用户记录。
## 📋 检查清单
### 1. 确认配置已修改并重启服务
```bash
# 检查配置
cd supabase_pro
grep ENABLE_EMAIL_AUTOCONFIRM .env
# 应该显示: ENABLE_EMAIL_AUTOCONFIRM=true
# 重启服务(必须)
docker-compose restart auth
# 或者
docker-compose restart
```
### 2. 检查 Supabase 服务是否正常运行
```bash
cd supabase_pro
docker-compose ps
```
确保 `auth` 服务状态为 `Up`
### 3. 检查服务日志
```bash
# 查看 auth 服务日志
docker-compose logs auth --tail=50
# 查看是否有错误
docker-compose logs auth | grep -i error
```
### 4. 验证配置是否生效
在 Supabase Dashboard (http://192.168.1.61:3000) 的 SQL Editor 中执行:
```sql
-- 检查当前配置(需要访问 GoTrue 配置)
-- 注意:这个查询可能无法直接执行,但可以通过 API 检查
```
或者直接测试注册,查看返回结果。
---
## 🔧 调试步骤
### 步骤 1检查前端配置
确认 `ak/config.uts` 中的配置正确:
```typescript
export const SUPA_URL: string = 'http://192.168.1.61:8000'
export const SUPA_KEY: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
```
### 步骤 2测试注册并查看日志
1. 打开浏览器开发者工具F12
2. 切换到 Console 标签
3. 尝试注册新用户
4. 查看控制台输出:
- `📝 signUp HTTP 状态码: ...`
- `📝 注册返回结果: ...`
- `📝 错误代码: ...`
- `✅ 找到 user 字段: ...``⚠️ 未找到 user 信息`
### 步骤 3检查返回结果
根据控制台日志,判断:
**情况 AHTTP 状态码 200有 user 字段**
- ✅ 注册成功
- 检查 `ak_users` 表是否有记录
- 如果没有,检查 `ensureUserProfile` 是否被调用
**情况 BHTTP 状态码 500错误信息包含 "confirmation email"**
- ❌ 配置未生效或服务未重启
- 需要重启 Supabase Auth 服务
**情况 CHTTP 状态码 400错误信息包含 "already registered"**
- ⚠️ 用户已存在
- 尝试登录或使用其他邮箱
---
## 🐛 常见问题
### 问题 1配置已修改但服务未重启
**症状**:仍然返回 500 错误
**解决**
```bash
cd supabase_pro
docker-compose restart auth
# 等待几秒钟让服务启动
docker-compose ps # 确认服务已启动
```
### 问题 2服务重启失败
**检查**
```bash
docker-compose logs auth
```
**可能原因**
- 配置文件语法错误
- 端口被占用
- Docker 服务未运行
### 问题 3注册成功但 ak_users 没有记录
**检查**
1. 查看控制台是否有 `✅ 用户资料创建成功` 日志
2. 如果没有,检查 `ensureUserProfile` 是否被调用
3. 检查 RLS 策略和触发器是否已创建
---
## 📝 已改进的代码
1. **`signUp` 方法**
- ✅ 添加 HTTP 状态码检查
- ✅ 添加详细日志
- ✅ 返回错误信息时包含状态码
2. **注册页面**
- ✅ 添加更详细的日志输出
- ✅ 检查所有可能的返回结构
- ✅ 明确错误提示
---
## 🎯 下一步操作
1. **重启 Supabase Auth 服务**(如果还没重启)
2. **测试注册**,查看控制台日志
3. **根据日志判断问题**
- 如果 HTTP 状态码是 200 且有 user说明注册成功
- 如果 HTTP 状态码是 500说明配置未生效需要重启服务
- 如果 HTTP 状态码是 400可能是用户已存在或其他错误
4. **检查数据库**
```sql
-- 检查 auth.users
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;
```