Разработать - как проверить, если токен сброса пароля является токеном - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь выяснить, как я могу проверить, действителен ли токен сброса пользователя ПЕРЕД загрузкой формы пароля сброса. Проблема в том, что в настоящее время пользователи не узнают об этом до тех пор, пока не отправят заявку.

Вот что у меня есть

class PasswordsController < Devise::PasswordsController
before_action :check_valid_token

private

def check_valid_token
  resetCode = (params['resetCode'])
  reset_password_token = Devise.token_generator.digest(self, :reset_password_by_token, resetCode)
  user = User.find_by(reset_password_token: @reset_password_token)
  if user == nil
    redirect_to root_path
  end
end
end

Это не работает, и я не могу найти много документации.

1 Ответ

0 голосов
/ 01 апреля 2020

Я бы сделал что-то в основном c, например:

def check_valid_token
  @user = User.find_by!(reset_password_token: params[:token])
rescue ActiveRecord::RecordNotFound
  redirect_to root_path
end

, чтобы у вас был экземпляр @user, если токен подходит, а если нет, он перенаправит пользователя на root_path. Вы также можете добавить некоторые сообщения перед перенаправлением, например
flash.now[:error] = "Some message here"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...