RT,以前以为是关了浏览器就过期,现在发现好像不是。 貌似过了三十分钟还没过期。。
你可以用 chrome 的开发工具看看 cookies
现在 chrome 和 firefox 都支持启动后继续上一次浏览,帮你自动打开以前的网站。貌似就是这个功能导致 session 级的 cookies 不会被清理 http://stackoverflow.com/questions/777767/firefox-session-cookies https://support.google.com/chrome/bin/answer.py?hl=en&answer=95421&p=settings_reopen_pages
rails3 的 session 是基于 cookies,不太好自动过期,不像 java 维护在容器里,多久没有活动就自动过期. 事实上 rails3 基于 cookies 也可以做到,比如你可以添加一个 cookie 记录最后一次访问时间,在 before_filter 里判断访问时间超过了多久就自动 reset session http://stackoverflow.com/questions/5860950/setting-session-timeout-in-rails-3
另外不推荐在 cookie_store 设置 expire_after,这样浏览器关闭后,再打开,也不会自动失效,必须等到时间过期
MyApp::Application.config.session_store :active_record_store, {:key => '_my_app_session', :secret => '5xb5x1g92e965b95b16e49x79gxx9999', :expire_after => 2.hours}
#1 楼 @cxh116 原来是这样,谢谢