如何防止会话存储在 JSON/XML 调用上创建会话?
我的问题是我将会话保存在数据库中,并且它被多个 api 调用淹没。
我正在使用 Rails 3.2.2 和 Devise 进行身份验证。
如何防止会话存储在 JSON/XML 调用上创建会话?
我的问题是我将会话保存在数据库中,并且它被多个 api 调用淹没。
我正在使用 Rails 3.2.2 和 Devise 进行身份验证。
我的问题是与 Devise 内部的 Warden 有关。在用户通过身份验证后,我不得不“告诉”Warden 不要将用户存储在会话中。
resource = warden.authenticate!(:scope => resource_name, :store => !(request.format.xml? || request.format.json?))
希望对看到这个帖子的人有所帮助。
resource = warden.authenticate!(:scope => resource_name, :store => is_navigational_format?)
理论上如果你不使用它,它现在不会加载。直到 rails 2.3.8,你可以这样做:
# application_controller.rb
session :off, :if => :sessionless_request?
protected
def sessionless_request?(request)
request.format == :xml || request.format == :json
end
现在你可以对这个 gem 做同样的事情 https://github.com/kares/session_off
您应该在模型中使用“devise :timeoutable”并在 config/initializers/devise.rb 中使用 config.timeout_in = 0
重启你的服务器!