Rails - 捕获'无效真实性令牌'异常

时间:2009-12-30 16:26:52

标签: ruby-on-rails exception authenticity-token expired-sessions

我目前正在使用rails应用程序上的RESTful Authentication插件。

有一种典型的情况是,用户在登录屏幕上停留足够的时间(假设为1天......)会导致身份验证令牌因时间过期而无效。

当此用户尝试第二天登录时(他没有刷新,他仍然使用此无效令牌),他将收到“500”http错误。使该请求的应用程序崩溃。

我想知道是否有可能抓住这个预期并警告用户。像任何其他无辜的网络用户一样,他只是回来再次尝试......并再次得到同样的错误......

2 个答案:

答案 0 :(得分:11)

在您的application_controller.rb中,您将执行以下操作:

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

这将允许您显示一些操作,在这种情况下show_some_error_page发生未处理的异常时。

我希望这会有所帮助。

答案 1 :(得分:-2)

如果特定控制器操作经常发生这种情况,您还可以完全禁用该操作的真实性令牌检查......

skip_before_filter :verify_authenticity_token, :only => [:create]