diff --git a/src/food-market.public/src/lib/validation.ts b/src/food-market.public/src/lib/validation.ts index 25bd8d8..f6b7bf6 100644 --- a/src/food-market.public/src/lib/validation.ts +++ b/src/food-market.public/src/lib/validation.ts @@ -19,13 +19,10 @@ export function validateEmail(value: string): string | null { } export function validatePassword(value: string): string | null { - // На клиенте — только базовая проверка длины. Все правила сложности - // (заглавные, цифры, спецсимволы) проверяет серверный ASP.NET Identity - // и возвращает конкретное сообщение в общий error-bar формы. Дублировать - // правила на фронте опасно: они расходятся с серверной политикой и - // блокируют ввод валидных паролей. if (!value) return 'Это поле обязательно для заполнения' if (value.length < 8) return 'Пароль должен быть не менее 8 символов' + if (!/[A-Z]/.test(value)) return 'Пароль должен содержать хотя бы одну заглавную букву' + if (!/[0-9]/.test(value)) return 'Пароль должен содержать хотя бы одну цифру' return null } diff --git a/src/food-market.web/src/lib/validation.ts b/src/food-market.web/src/lib/validation.ts index ff1d202..f7b2021 100644 --- a/src/food-market.web/src/lib/validation.ts +++ b/src/food-market.web/src/lib/validation.ts @@ -26,12 +26,10 @@ export function validateEmail(value: string): string | null { } export function validatePassword(value: string): string | null { - // На клиенте — только проверка длины. Сложность (заглавные/цифры/ - // спецсимволы) проверяет серверный Identity и возвращает конкретное - // сообщение в error-bar. Дубль правил на фронте расходится с серверной - // политикой и блокирует ввод валидных паролей. if (!value) return messages.required if (value.length < 8) return messages.passwordShort + if (!/[A-Z]/.test(value)) return messages.passwordNoUpper + if (!/[0-9]/.test(value)) return messages.passwordNoDigit return null }