Описание проблемы
CustomerProfileController / CustomerEmailController при отсутствии auth возвращают error без code → Router ставит HTTP 400.
- Closures login/register в
web.php всегда мапят processor error в HttpStatus::BAD_REQUEST, в том числе rate-limit Login.
Клиенты не могут отличить bad credentials / unauthenticated / throttle; retry-логика на 401 ломается.
Шаги воспроизведения
- Без сессии:
PUT /api/v1/customer/profile → HTTP 400, body success:false.
- 6+ неверных
POST /api/v1/customer/login с одного IP → HTTP 400 (не 429/401).
Ожидаемое поведение
- Unauthenticated → 401
- Invalid credentials → 401 (или 400 с отдельным error code)
- Rate limit → 429
Фактическое поведение
// web.php login/register
return Response::error($response->getMessage(), HttpStatus::BAD_REQUEST);
// Router normalize: $result['code'] ?? 400
Окружение
- MiniShop3: beta / REST API
- MODX: 3.x
- PHP: 8.2+
Дополнительный контекст
Смежно с #341 (единый envelope), но это конкретный auth-status баг, не общая унификация.
Описание проблемы
CustomerProfileController/CustomerEmailControllerпри отсутствии auth возвращают error безcode→ Router ставит HTTP 400.web.phpвсегда мапят processor error вHttpStatus::BAD_REQUEST, в том числе rate-limit Login.Клиенты не могут отличить bad credentials / unauthenticated / throttle; retry-логика на 401 ломается.
Шаги воспроизведения
PUT /api/v1/customer/profile→ HTTP 400, bodysuccess:false.POST /api/v1/customer/loginс одного IP → HTTP 400 (не 429/401).Ожидаемое поведение
Фактическое поведение
Окружение
Дополнительный контекст
Смежно с #341 (единый envelope), но это конкретный auth-status баг, не общая унификация.