This commit is contained in:
2026-09-09 19:08:30 +07:00
parent 0fb4a6f37b
commit f46ddf19dc
4 changed files with 44 additions and 19 deletions
+4 -11
View File
@@ -98,7 +98,7 @@ func (s *UsersService) AddUser(
return ErrTermsNotAccepted
}
email = normalizeEmail(email)
email = strings.TrimSpace(email)
if err := validateEmail(email); err != nil {
return err
}
@@ -182,7 +182,7 @@ func (s *UsersService) RefreshPassword(
ctx context.Context,
email string,
) error {
email = normalizeEmail(email)
email = strings.TrimSpace(email)
if err := validateEmail(email); err != nil {
return err
}
@@ -222,12 +222,6 @@ func (s *UsersService) RefreshPassword(
return s.usersRepo.UpdateUserPassword(ctx, user.Email, string(hashedPassword))
}
// normalizeEmail приводит адрес к каноническому виду (без пробелов, нижний
// регистр): "User@Example.COM " и "user@example.com" — один аккаунт.
func normalizeEmail(email string) string {
return strings.ToLower(strings.TrimSpace(email))
}
// validateEmail проверяет, что строка является одиночным email-адресом.
func validateEmail(email string) error {
if email == "" {
@@ -249,11 +243,10 @@ func (s *UsersService) Login(
email string,
password string,
) (string, string, error) {
// Email нормализуется так же, как при регистрации: иначе пользователь,
// зарегистрировавшийся как user@example.com, не войдёт с User@Example.COM.
// Сохраняем регистр email, как при регистрации; убираем только внешние пробелы.
user, err := s.usersRepo.GetUserByEmail(
ctx,
normalizeEmail(email),
strings.TrimSpace(email),
)
if err != nil {
return "", "", err