所以我有一个表单,它使 XHR 到外部 api 以获取令牌,然后提交到 url,该 url 在我们后端的“/update”处调用我们的数据库。我们正在尝试通过使用机架攻击节流阀来限制一个人可以使用该表单提出的请求数量。因此,例如在两次尝试后达到限制时,第三次应该给出 429 错误,然后重定向到我们的页面/429
。到目前为止我有这个:
throttle '/update', {
limit: 2,
period: 60
} do |req|
next nil unless req.path == '/update' && req.put?
req.ip
end
然后对于我们的油门响应,我们正在做:
Rack::Attack.throttled_response = lambda do |env|
headers = {
'Location' => '/429'
}
[302, headers]
end
该代码确实有效并返回 429,但即使我们Location
在标头中也不会发生重定向。此外,我们有一个端点,我们在其中执行一个GET
相同的响应将用户重定向到/429
成功。
那么如何在使用 Rack Attack ruby on rails 库发出put
或请求时重定向用户?post
还有另一种重定向用户的方法吗?任何帮助,将不胜感激。