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

Rails 3 дополнительных параметра конфигурации сеанса (ключ, expires_after, secure)

Может ли кто-нибудь указать, какие новые параметры конфигурации сеанса Rails 3.x?

Я пытаюсь дублировать ту же конфигурацию, что и в моем приложении Rails 2.3.x.

Это конфигурация, которую я использовал в приложении:

#environment.rb
config.action_controller.session_store = :active_record_store

config.action_controller.session = {
    :key         => '_something', #non-secure for development
    :secret      => 'really long random string'
  }


# production.rb - override environment.rb for production
config.action_controller.session = {
  :key            => '_something_secure',
  :secret         => 'really long random string',
  :expire_after   => 60*60,#time in seconds
  :secure         => true #The session will now not be sent or received on HTTP requests.
}

Однако в Rails 3.x я могу только упомянуть следующее:

AppName::Application.config.session_store :active_record_store

AppName::Application.config.secret_token = 'really long random string'

AppName::Application.config.cookie_secret = 'another really long random string'

Существуют ли другие настройки конфигурации для управления ключом, expire_after time и безопасным вариантом?

Что касается последнего, если в файле production.rb установлено значение "config.force_ssl = true", я полагаю, что безопасный параметр больше не требуется?

Большое спасибо!

4b9b3361

Ответ 1

Теперь вы настраиваете хранилище сеансов на основе файлов cookie через инициализатор, возможно, в config/initializers/session_store.rb. В Rails 3 хранилище сеансов представляет собой часть промежуточного программного обеспечения, и параметры конфигурации передаются с одним вызовом config.session_store:

Your::Application.config.session_store :cookie_store, :key => '_session'

Вы можете добавить любые дополнительные параметры в хэш с помощью :key, например

Your::Application.config.session_store :cookie_store, {
  :key =>           '_session_id',
  :path =>          '/',
  :domain =>        nil,
  :expire_after =>  nil,
  :secure =>        false,
  :httponly =>      true,
  :cookie_only =>   true
}

(Это стандартные стандартные значения)

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

Your::Application.config.session_store :cookie_store, {
  :key =>           '_session_id',
  :secure =>        Rails.env.production?
}