обязательны ли файлы cookie для приложения Ruby on Rails? - PullRequest
3 голосов
/ 26 мая 2009

правда ли, что Rails зависят от куки? Кажется, что вспышка является частью сеанса, а сеанс использует куки ... поэтому, когда я отключаю куки в Firefox, приложение Rails, которое работало, показывает

[Ошибка] ActionController :: InvalidAuthenticityToken

правда ли, что для работы приложения RoR файлы cookie являются обязательными?

Обновление: или, чтобы приложение Rails снова заработало, какой самый простой способ? (и если это только один сервер (Apache работает с mod_rails), то проще ли?)

Ответы [ 2 ]

5 голосов
/ 26 мая 2009

Они не являются обязательными, но есть некоторые вещи, которые вы не можете сделать без файлов cookie. Вы можете отключить токены аутентификации, как описано здесь .

3 голосов
/ 26 мая 2009

Не обязательно использовать куки, но это рельсы по умолчанию от 2.x и выше. Использование куки-файлов служит простым решением некоторых более сложных проблем, которые возникают, когда вы пытаетесь сохранить куки-файлы в памяти на нескольких серверах (и вы попадаете в такие вещи, как липкие сессии, потеря пользовательских данных и т.д.).

Вы можете указать, где rails будет хранить данные вашего сеанса; это вспышка и все, что связано с конкретным пользователем. В environment.rb вы можете настроить, где хранить свои сессии, используя config.action_controller.session_store . Возможные варианты: : cookie_store,: active_record_store,: p_store,: drb_store,: mem_cache_store или: memory_store .

cookie_store используется по умолчанию, если вы закомментировали опцию или удалили ее из environemnt.rb. Это также самый универсальный. Если у вас несколько серверов, один запрос пользователя может поступить на один сервер, а следующий запрос может прийти на другой сервер. В этой ситуации вы не можете использовать memory_store, поскольку 2-й сервер не будет ничего знать о текущем пользователе.

Хранение информации о сеансе в зашифрованном файле cookie снижает нагрузку на сервер для хранения этой информации. Единственным недостатком является то, что каждый запрос к серверу должен передавать куки (обычно <1 КБ), но это не заметная разница во всем, что я когда-либо испытывал. </p>

: cookie_store,: mem_cache_store и: active_record_store являются наиболее часто используемыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...