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", я полагаю, что безопасный параметр больше не требуется?
Большое спасибо!
Ответы
Ответ 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?
}