Rails – поймать исключение «Недопустимый токен аутентификации»

В настоящее время я использую подключаемый модуль RESTful Authentication в своем приложении rails.

Существует типичный сценарий, когда пользователь остается на экране входа в систему в течение достаточного времени (скажем, 1 день..), что делает токен аутентификации недействительным из-за истечения времени.

Когда этот пользователь попытается на следующий день войти в систему (он не обновился, он все еще с этим недействительным токеном), он получит ошибку HTTP «500». Выполнение сбоя приложения для этого запроса.

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


person Pedro Cunha    schedule 30.12.2009    source источник


Ответы (2)


В вашем application_controller.rb вы сделаете что-то вроде:

rescue_from Your::Exception, :with => :show_some_error_page

Это позволит вам показать некоторые действия, в данном случае show_some_error_page при возникновении необработанного исключения.

Надеюсь, это поможет.

person jonnii    schedule 30.12.2009

Если это часто происходит для определенного действия контроллера, вы также можете полностью отключить проверку токена подлинности для этого действия...

skip_before_filter :verify_authenticity_token, :only => [:create]
person jmcnevin    schedule 31.12.2009
comment
Не будет ли это крайне небезопасно? Мои журналы показывают частые попытки взлома войти в систему, создающие эти исключения. - person allesklar; 22.08.2014
comment
это на самом деле полезно. да, это может быть небезопасно для некоторых действий. но он отвечает на заданный вопрос И показывает, как указать только определенные действия. - person jpw; 20.09.2020