Подтвердить что ты не робот

Предотвращение создания сеанса на рельсах 3.2.2 для RESTful api

Как я могу запретить хранилищу сеансов создавать сеанс для вызовов JSON/XML?

Моя проблема заключается в том, что я сохраняю сеансы в базе данных, и она запитывается несколькими вызовами api.

Я использую Rails 3.2.2 и Devise для аутентификации.

4b9b3361

Ответ 1

Моя проблема здесь была в Warden внутри Devise. Мне пришлось "сообщить" Warden, чтобы он не хранил пользователя в сеансе после аутентификации пользователя.

resource = warden.authenticate!(:scope => resource_name, :store => !(request.format.xml? || request.format.json?))

Надеюсь, что поможет любому, кто видит этот поток.

Ответ 2

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

Ответ 3

в теории, если вы не используете его, он теперь не загружается. до рельсов 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

Ответ 4

Вы должны использовать "devise: timeoutable" в своей модели и использовать config.timeout_in = 0 в config/initializers/devise.rb

Перезагрузите сервер!