Rails 3 opciones adicionales de configuración de sesión (clave, caduca después, segura)


Puede alguien señalar lo que el nuevo Rails 3.x opciones de configuración de sesión son?

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

Esta es la configuración que usé 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 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 opciones de configuración para controlar la clave, expire_after time y secure option?

Con respecto a este último, si "config.force_ssl = true " se establece en producción.rb, supongo que la opción segura ya no es necesaria?

Muchas Gracias!

Author: shedd, 2011-06-18

1 answers

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 el almacén de sesiones es una pieza de middleware, y las opciones de configuración se pasan con una sola llamada a config.session_store:

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

Puede poner cualquier opción adicional que desee en el hash con :key, por ejemplo,

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 la producción, establecer seguro en la cookie realmente no debería hacer una diferencia en la práctica, pero puede establecer sólo para estar en el lado seguro...

Your::Application.config.session_store :cookie_store, {
  :key =>           '_session_id',
  :secure =>        Rails.env.production?
}
 40
Author: fidothe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-14 13:16:34