Как пропустить проверку при регенерации безопасного токена - PullRequest
0 голосов
/ 06 июня 2019

Итак, я отправляю электронные письма для сброса пароля, и у меня возник вопрос, как решить эту проблему, после того как пользователь сбросил свой пароль. Я воссоздаю новый токен сброса пароля (я знаю, что это плохо, до того, как я его сгенерировал, когда отправлял запрос на сброс пароля, но это не сработало, поэтому я попробовал это). Каждый раз, когда я восстанавливаю токен, он не пропускает проверки, которые я установил в модели.

Как уже было сказано, я попытался переключить его, создать новый токен перед отправкой электронного письма и теперь, после того как они сбросили свой пароль. Я также просмотрел документацию has_secure_token и нигде не вижу, где можно пропустить проверку при регенерации токена.

Это мой код для сброса пароля в модели User.

def reset_password(password)
  self.regenerate_reset_password_token
  self.password = password
  save(:validate => false)
end

Я получаю сообщение об ошибке при проверке паролей моего пользователя при регенерации токена, как было сказано ранее, но не уверен, как пропустить проверку при регенерации токена в строке 2 кода выше.

Validation failed: Password can't be blank, Password is too short (minimum is 8 characters)

1 Ответ

0 голосов
/ 06 июня 2019

Вы можете сделать

def generate_password_reset_token
  self.reset_password_token = generate_token
  self.reset_password_sent_at = Time.now
  save!
end


def generate_token
  SecureRandom.base58(5)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...