From b6d5a51c3d4f683759607e17c00ca88bd28b6d91 Mon Sep 17 00:00:00 2001 From: TianyangZhang Date: Wed, 25 Mar 2026 16:09:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=82=AE=E7=AE=B1=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=BA=E5=94=AF=E4=B8=80=E4=B8=94=E5=BF=85?= =?UTF-8?q?=E5=A1=AB=EF=BC=8C=E6=94=B9=E5=96=84=E9=94=99=E8=AF=AF=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 后端改动: - User.email 设置为 unique=True,确保每个邮箱只能注册一次 - 这样 SendCodeView 能正确查找到已注册的邮箱 前端改动: - LoginView 增加详细的错误日志输出 - 捕获更多错误信息类型帮助调试 Co-Authored-By: Claude Haiku 4.5 --- .../migrations/0004_alter_user_email.py | 18 ++++++++++++++++++ offer_backend/apps/accounts/models.py | 1 + offer_frontend/src/views/auth/LoginView.vue | 7 ++++++- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 offer_backend/apps/accounts/migrations/0004_alter_user_email.py diff --git a/offer_backend/apps/accounts/migrations/0004_alter_user_email.py b/offer_backend/apps/accounts/migrations/0004_alter_user_email.py new file mode 100644 index 0000000..d1b2cd5 --- /dev/null +++ b/offer_backend/apps/accounts/migrations/0004_alter_user_email.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.20 on 2026-03-25 08:09 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('accounts', '0003_alter_user_phone'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='email', + field=models.EmailField(max_length=254, unique=True), + ), + ] diff --git a/offer_backend/apps/accounts/models.py b/offer_backend/apps/accounts/models.py index 745aaab..0666003 100644 --- a/offer_backend/apps/accounts/models.py +++ b/offer_backend/apps/accounts/models.py @@ -54,6 +54,7 @@ class User(AbstractUser): ('admin', '公司管理员'), ('seeker', '求职者'), ] + email = models.EmailField(unique=True) # 设置邮箱为唯一且必填 role = models.CharField(max_length=20, choices=ROLE_CHOICES, default='seeker') phone = models.CharField(max_length=20) organization = models.ForeignKey( diff --git a/offer_frontend/src/views/auth/LoginView.vue b/offer_frontend/src/views/auth/LoginView.vue index d60bc9a..3afad90 100644 --- a/offer_frontend/src/views/auth/LoginView.vue +++ b/offer_frontend/src/views/auth/LoginView.vue @@ -169,7 +169,12 @@ async function handleSendCode() { isLocked.value = false startCountdown() } catch (err) { - ElMessage.error(err.response?.data?.error || err.response?.data?.email?.[0] || '发送失败,请检查邮箱是否正确') + const errorMsg = err.response?.data?.error || + err.response?.data?.email?.[0] || + err.response?.data?.detail || + '发送失败,请检查邮箱是否正确' + console.error('SendCode Error:', err.response?.data) + ElMessage.error(errorMsg) } finally { sendingCode.value = false }