Question

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.

Was it helpful?

Solution

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.

OTHER TIPS

resource = warden.authenticate!(:scope => resource_name, :store => is_navigational_format?)

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

You should use "devise :timeoutable" in your model and use config.timeout_in = 0 in config/initializers/devise.rb

Restart your server!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top