Запретить создание сессии на рельсах 3.2.2 для API RESTful

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

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

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

 refaelos23 мая 2012 г., 15:09
все указывает на Github.com / Kares / session_off. это просто не работает для меня.
 Viktor Trón23 мая 2012 г., 15:03
 Viktor Trón23 мая 2012 г., 15:04

Ответы на вопрос(4)

Решение Вопроса

n, чтобы он не сохранял пользователя в сеансе после аутентификации пользователя.

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

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

 Ben01 авг. 2013 г., 16:44
@ kain Я считаю, что это переопределяет строку в действии создания Devise SessionsController.
 refaelos19 сент. 2014 г., 15:18
контроллер аутентификации
 kain09 янв. 2013 г., 20:27
куда ты положил этот код?
 j_mcnally26 июн. 2014 г., 07:19
Куда это денется?
 Viktor Trón25 мая 2012 г., 10:34
хороший. примите ваш ответ. (или мой

devise: timeoutable" в вашей модели и использовать config.timeout_in = 0 в config / initializer / devise.rb

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

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

 refaelos23 мая 2012 г., 15:34
это очень плохо, b / c session_off выглядит как отличный плагин. (кстати, devise также использует "сессию")
 refaelos23 мая 2012 г., 14:32
Я попробовал ваши решения, и это не сработало. может быть, devise и session_off плохо работают вместе?!
 Viktor Trón23 мая 2012 г., 15:24
заметьте, что плагин переопределяет только сеансовый вызов от контроллера, запрос request.session все равно будет получать сеанс. Я думаю, что devise (на самом деле смотритель) использует env ['rack.session']:
 refaelos23 мая 2012 г., 15:34
Я получаю несколько ошибок при использовании session_off. у меня вероятно есть несколько плагинов, которые используют сессию.
resource = warden.authenticate!(:scope => resource_name, :store => is_navigational_format?)

Ваш ответ на вопрос