variable rails ruby-on-rails ruby ruby-on-rails-3 session-state session-variables

ruby on rails - variable - Rails 3 opciones de configuración de sesión adicionales(clave, expires_after, secure)



rails session variable (1)

Ahora configura el almacén de sesiones basado en cookies a través de un inicializador, probablemente en config/initializers/session_store.rb . En Rails 3, la tienda de sesiones es una pieza de middleware, y las opciones de configuración se transfieren con una sola llamada a config.session_store :

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

Puede poner todas las opciones adicionales que desee en el hash con la :key p. Ej.

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

(Esos son solo los valores predeterminados estándar)

Si fuerza SSL en producción, configurar la seguridad en la cookie no debería marcar la diferencia en la práctica, pero es posible que desee configurarlo para estar seguro ...

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

¿Puede alguien indicar cuáles son las nuevas opciones de configuración de sesión de Rails 3.x?

Estoy intentando duplicar la misma configuración que tengo en mi aplicación Rails 2.3.x.

Esta es la configuración que utilicé en la aplicación:

#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. }

Sin embargo, en Rails 3.x, solo puedo encontrar una mención de lo siguiente:

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''

¿Hay otras configuraciones para controlar la clave, expire_after time y secure option?

Respecto a esto último, si "config.force_ssl = true" está establecido en production.rb, ¿asumo que la opción segura ya no es necesaria?

¡Muchas gracias!