ruby on rails - rails - Número de aceleración de solicitudes por usuario(con ataque de rack y diseño)
devise rails (1)
Estoy usando https://github.com/kickstarter/rack-attack/#throttles para acelerar la solicitud a ciertas direcciones URL.
Los documentos de ataque en rack muestran cómo acelerar mediante IP de solicitud o parámetros de solicitud, pero lo que me gustaría hacer es acelerar las solicitudes por usuario. Por lo tanto, sin importar la IP, el usuario debe poder hacer no más de una solicitud en determinado marco de tiempo.
Usamos el diseño para la autenticación y no puedo pensar en una forma simple de identificar de forma exclusiva a los usuarios según lo soliciten.
¿Debo almacenar el id de usuario en la sesión / cookie? Tal vez un hash uniq? ¿Cuál es su opinión sobre la mejor manera de hacerlo?
Lo averigué. Devise ya almacena la identificación de usuario en la sesión. El código sería algo así como:
Rack::Attack.throttle(''something'', limit: 6, period: 60.seconds) do |req|
req.env[''rack.session'']["warden.user.user.key"][0][0] if some_condition?
end