: require_no_authentication filter при сбросе пароля пользователя - PullRequest
0 голосов
/ 09 апреля 2019

У меня проблемы со сбросом пароля в моем приложении.При нажатии кнопки «Сбросить пароль» я получаю электронное письмо «Инструкции по сбросу пароля» со ссылкой на «Сбросить пароль».

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

При выходе из системы - после выхода из моего приложения, а затем по ссылке сброса пароля из электронного письма он перенаправляет на страницу редактирования пароля.

Послеэта инструкция - (https://github.com/plataformatec/devise/wiki/How-To:-Redirect-URL-after-sending-reset-password-instructions)

Контроллер паролей:

class Users::PasswordsController < Devise::PasswordsController

  protected

  def after_sending_reset_password_instructions_path_for(resource_name)
    edit_user_registration_path
  end

end

config / rout.rb:

devise_for :users, controllers: { passwords: 'passwords' }

Но все равно появляется та же ошибка.Журнал консоли:

Started GET "/users/password/edit?reset_password_token=[FILTERED]" for 127.0.0.1 at 2019-04-09 13:59:26 +0300
Processing by Users::PasswordsController#edit as HTML
  Parameters: {"reset_password_token"=>"[FILTERED]"}
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 10], ["LIMIT", 1]]
  ↳ /home/anatoly/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activerecord-5.2.1/lib/active_record/log_subscriber.rb:98
Redirected to http://localhost:3000/
Filter chain halted as :require_no_authentication rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 0.3ms)

Кто-нибудь может мне помочь?

Заранее спасибо!

1 Ответ

0 голосов
/ 09 апреля 2019

Это правильное поведение.

Страница «Сброс пароля» используется только для восстановления пароля, поэтому, если пользователь уже зарегистрирован, страница не отображается.Зарегистрированные пользователи могут использовать маршрут /users/edit для редактирования своего пароля.

Вот как контроллер восстановления пароля Devise предотвращает доступ зарегистрированного пользователя к странице «Сброс пароля»:

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