如何阻止会话存储在JSON / XML调用上创建会话?
我的问题是我在数据库中保存会话,并在多个api调用中泛滥。
我正在使用Rails 3.2.2和Devise进行身份验证。
答案 0 :(得分:18)
我的问题在于Devise中的Warden。在用户通过身份验证后,我必须“告诉”Warden不要将用户存储在会话中。
resource = warden.authenticate!(:scope => resource_name, :store => !(request.format.xml? || request.format.json?))
希望能帮助看到这个帖子的人。
答案 1 :(得分:4)
resource = warden.authenticate!(:scope => resource_name, :store => is_navigational_format?)
答案 2 :(得分:1)
理论上如果你不使用它,它现在不加载。 直到rails 2.3.8,你可以这样做:
# application_controller.rb
session :off, :if => :sessionless_request?
protected
def sessionless_request?(request)
request.format == :xml || request.format == :json
end
现在你可以用这个宝石做同样的事了 https://github.com/kares/session_off
答案 3 :(得分:-4)
您应该在模型中使用“devise:timeoutable”并在config / initializers / devise.rb中使用config.timeout_in = 0
重新启动服务器!