问题
How can i prevent the session store from creating a session on JSON/XML calls ?
My problem is that i save sessions in a database and it gets flooded on multiple api calls.
I'm using Rails 3.2.2 and Devise for authentication.
回答1:
My problem here was with Warden inside Devise. I had to "tell" Warden not to store the user in the session after the user is authenticated.
resource = warden.authenticate!(:scope => resource_name, :store => !(request.format.xml? || request.format.json?))
Hope that helps whoever sees this thread.
回答2:
resource = warden.authenticate!(:scope => resource_name, :store => is_navigational_format?)
回答3:
in theory if you don't use it, it is not loaded now. up until rails 2.3.8, you could do:
# application_controller.rb
session :off, :if => :sessionless_request?
protected
def sessionless_request?(request)
request.format == :xml || request.format == :json
end
now you can do the same with this gem https://github.com/kares/session_off
回答4:
You should use "devise :timeoutable" in your model and use config.timeout_in = 0 in config/initializers/devise.rb
Restart your server!
来源:https://stackoverflow.com/questions/10717667/prevent-session-creation-on-rails-3-2-2-for-restful-api