我有一个Sinatra应用程序,我正在使用rack_csrf gem来保护我的表单,如果CSRF令牌无效并且我想捕获它用于记录目的,这个gem会引发异常。有没有办法捕获此异常或从主Sinatra应用程序获取返回的状态代码?
我的代码是这样的:
class MyApp < Sinatra::Base
use Rack::Csrf
end
这就是我想要捕捉的内容:https://github.com/baldowl/rack_csrf/blob/master/lib/rack/csrf.rb#L42
感谢您的帮助!
答案 0 :(得分:0)
您可能需要write a middleware才能从您的应用中捕获该异常并进行日志记录。如下所示:
def call(env)
@app.call(env)
rescue InvalidCsrfToken => e
#log error here, then return a status code
end