【发布时间】:2015-01-17 09:08:31
【问题描述】:
我正在尝试测试基本 sinatra 应用程序的路由,但由于 csrf 保护错误Rack::Csrf::InvalidCsrfToken,我的测试请求失败。
这些路由通常由客户端应用程序命中,其中包括通过 <meta> 标记的 csrf 令牌。
我尝试通过 Rack::Csrf.token 访问 csrf 令牌,但我无法访问 env(或者至少我不知道如何在我的 rpsec 测试中访问 env),并且有没有经历过成功。
app.rb
use Rack::Csrf, raise: true
put '/api/events/:id' do
# ... code that updates an event ...
end
example_spec.rb
it "adds an event to the current user" do
user = Helpers.authorized_user
session = {user_id: user.id}
put '/events/1/join', {}, {'rack.session' => session, :xhr => true}
do
在测试这些路由时如何规避/安抚 Rack:CSRF?
【问题讨论】: