fix(validation): validatePassword проверяет заглавную и цифру (соответствует хинту)
Some checks failed
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker Web / Build + push Web (push) Waiting to run
Docker Web / Deploy Web on stage (push) Blocked by required conditions
Docker Public / Build + push Public (push) Has been cancelled
Docker Public / Deploy Public on stage (push) Has been cancelled
Some checks failed
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker Web / Build + push Web (push) Waiting to run
Docker Web / Deploy Web on stage (push) Blocked by required conditions
Docker Public / Build + push Public (push) Has been cancelled
Docker Public / Deploy Public on stage (push) Has been cancelled
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
259706e21f
commit
fc2cbee3d7
|
|
@ -19,13 +19,10 @@ export function validateEmail(value: string): string | null {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function validatePassword(value: string): string | null {
|
export function validatePassword(value: string): string | null {
|
||||||
// На клиенте — только базовая проверка длины. Все правила сложности
|
|
||||||
// (заглавные, цифры, спецсимволы) проверяет серверный ASP.NET Identity
|
|
||||||
// и возвращает конкретное сообщение в общий error-bar формы. Дублировать
|
|
||||||
// правила на фронте опасно: они расходятся с серверной политикой и
|
|
||||||
// блокируют ввод валидных паролей.
|
|
||||||
if (!value) return 'Это поле обязательно для заполнения'
|
if (!value) return 'Это поле обязательно для заполнения'
|
||||||
if (value.length < 8) return 'Пароль должен быть не менее 8 символов'
|
if (value.length < 8) return 'Пароль должен быть не менее 8 символов'
|
||||||
|
if (!/[A-Z]/.test(value)) return 'Пароль должен содержать хотя бы одну заглавную букву'
|
||||||
|
if (!/[0-9]/.test(value)) return 'Пароль должен содержать хотя бы одну цифру'
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,10 @@ export function validateEmail(value: string): string | null {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function validatePassword(value: string): string | null {
|
export function validatePassword(value: string): string | null {
|
||||||
// На клиенте — только проверка длины. Сложность (заглавные/цифры/
|
|
||||||
// спецсимволы) проверяет серверный Identity и возвращает конкретное
|
|
||||||
// сообщение в error-bar. Дубль правил на фронте расходится с серверной
|
|
||||||
// политикой и блокирует ввод валидных паролей.
|
|
||||||
if (!value) return messages.required
|
if (!value) return messages.required
|
||||||
if (value.length < 8) return messages.passwordShort
|
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
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue