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

2.1 KiB
Raw Blame History

立即修复注册问题

🚨 当前问题

注册时返回 500 错误Supabase 中没有创建用户记录。

原因

  • ENABLE_EMAIL_AUTOCONFIRM=false - 需要发送确认邮件
  • SMTP 配置错误(supabase-mail 服务无法发送邮件)
  • 当邮件发送失败时Supabase 不会创建用户

立即解决方案

步骤 1修改 Supabase 配置

编辑文件:supabase_pro/.env

找到这一行:

ENABLE_EMAIL_AUTOCONFIRM=false

改为:

ENABLE_EMAIL_AUTOCONFIRM=true

步骤 2重启 Supabase Auth 服务

cd supabase_pro
docker-compose restart auth

或者重启整个 Supabase

docker-compose restart

步骤 3验证配置

# 检查配置是否生效
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 中执行:

-- 检查最新注册的用户
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;

📝 配置说明

开发环境推荐配置

## Email auth
ENABLE_EMAIL_SIGNUP=true
ENABLE_EMAIL_AUTOCONFIRM=true  # 跳过邮件验证,注册后立即可以登录

优点

  • 注册后立即可以登录
  • 无需配置 SMTP 服务
  • 适合开发和测试

生产环境配置

如果需要邮件验证,配置真实的 SMTP 服务:

ENABLE_EMAIL_AUTOCONFIRM=false
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=your-smtp-user
SMTP_PASS=your-smtp-password

⚠️ 重要提示

修改配置后必须重启 Supabase Auth 服务,否则配置不会生效。

cd supabase_pro
docker-compose restart auth