WEB-346 · Дефект · — · web
P2: Логин с неподтверждённой почтой: ошибка врёт «Неверная почта или пароль», лишнее поле 2FA; owner: пускать сразу с грейс-периодом на подтверждение
Закрыт
P2
ведёт: coordinator-fable
Суть
# Три проблемы UX логина (owner-тест инвайтов 24.08, скрины в чате 00:46)
## 1. Ошибка вводит в заблуждение
Сервер отклоняет по reason: email_not_verified, а UI показывает «Неверная почта или пароль». Надо: честное сообщение «Подтвердите почту — письмо отправлено на X» + кнопка «Отправить письмо ещё раз».
## 2. Поле «Код 2FA» показывается всем
После неудачного логина форма выводит поле 2FA, хотя пользователь 2FA не включал (и не мог — ни разу не был в кабинете). Показывать 2FA-поле только если у аккаунта twoFactorEnabled.
## 3. Owner-решение (продукт): НЕ отсеивать неверифицированных
Owner 24.08: «майкрософт и индустрия пускают сразу, подтвердить почту дают пару дней». Сделать: после регистрации пускать в кабинет СРАЗУ; плашка «подтвердите почту» внутри; жёсткий гейт только через N дней (например 3) или на чувствительных действиях. Это меняет поведение [Auth] Blocking credentials login (email_not_verified).
Зависимость: WEB-345 (письмо реально не отправляется — чинить ПЕРВЫМ, иначе грейс-период кончается тупиком).
Родня: WEB-071 (инвайт-гейт), WEB-320.
Доказательства
[24.08 02:10] СДЕЛАНО В ПРОДЕ (посадка 41, v4-452800ff4, волна l42mail d7397b3): 1) честная ошибка email_not_verified с адресом + кнопка resend (/api/auth/resend-verification); 2) поле 2FA только после серверного two-factor-required; 3) owner-решение: автовход сразу после регистрации, плашка в кабинете, грейс EMAIL_VERIFY_GRACE_DAYS=3 (env в дропине, 0=старое поведение). Тесты: 83 суммарно (грейс 12, register 56, login 5, банер 5, регресс 4, sender 1) — все зелёные. Отчёт: /home/ubuntu/waves/L42MAIL-REPORT.md. Родня: WEB-345 (корень с почтой), WEB-071. ОСТАТОК: живая приёмка owner глазами (визуал-правило).
[2026-08-25 ~09:10] BQA-1 браузерная приёмка живьём против прода v4-0ac410ac0 (Playwright на A1, отчёт /home/ubuntu/waves/BQA1-REPORT.md, скрины bqa1/shots/, консоль-логи console-WEB-NNN.log): заявленные симптомы НЕ воспроизводятся: логин с неподтверждённой почтой ПРОХОДИТ без лживой ошибки и без поля 2FA (session: emailVerified:false, twoFactorEnabled:false). ⚠️ НО вскрыт policy-вопрос для owner: должен ли логин без верификации пускать полностью? Оставлен в review до решения.
[2026-08-25 19:11Z] Авторская волна запущена на A1: web346 (пускать в grace-период, честное «почта не подтверждена» после, убрать лишнее 2FA-поле); luna xhigh, ветка от a453b16, зонные+негативные тесты, без full build. Маркер *_DONE, отчёт на A1.
[2026-08-25 20:05Z] АВТОР ГОТОВ (web346 @f1a2005): LoginModal различает emailNotVerified/2FA-challenge/generic; истёкший grace → честное сообщение+resend; 2FA поле только после server challenge; grace-механика сервера уже была (EMAIL_VERIFY_GRACE_DAYS). 5/5+4/4+18/18. → review (acc2).
[2026-08-25 21:08Z] ПРИНЯТО (acc2 независимая, приёмщик≠автор, свои негативы): GO. login grace. → done. Войдёт в следующую посадку.
Починено в
a453b16
Воркер
не привязан — привязать:
curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \
-d '{"issueId":"WEB-346","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-08-25T21:07:25.715Z