我是Ruby / Rails的新手,我对Rails中的会话机制以及整个会话都有一些疑问。
提前致谢。
答案 0 :(得分:3)
是的,会话默认存储在cookie中。如果您在config/initializers/
下查找,则会找到包含以下内容的session_store.rb
文件。
Appname::Application.config.session_store :cookie_store, key: '_appname_session'
就覆盖此行为而言,您可以创建自定义Cookie并将其到期日期设置为所需的时间。通常,这是在创建身份验证时处理用户会话的方式。例如:
def sign_in(user)
cookies[:session_token] = { value: user.session_token, expires: 1.day.from_now }
self.current_user = user
end
然后使用该cookie来持久保存用户会话。
答案 1 :(得分:1)
您可以使用初始化程序中的expire_after
设置超时
My::Application.config.session_store :active_record_store, {
key: "session_id",
domain: "domain.com",
expire_after: 12.hours,
}
答案 2 :(得分:1)
这两件事都可以在config/initializers/session_store.rb
中设置。 E.g:
MyApp::Application.config.session_store :cookie_store,
:key => '_my_app_session',
:expire_after => 30.minutes