Предотвращение создания сеанса на рельсах 3.2.2 для RESTful api
Как я могу запретить хранилищу сеансов создавать сеанс для вызовов JSON/XML?
Моя проблема заключается в том, что я сохраняю сеансы в базе данных, и она запитывается несколькими вызовами api.
Я использую Rails 3.2.2 и Devise для аутентификации.
Ответы
Ответ 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
Перезагрузите сервер!