use*_*509 11 cookies session ruby-on-rails
我经常想清除Rails中的会话存储,特别是默认的基于cookie的会话存储.有些网站似乎暗示了这一点
rake tmp:sessions:clear
Run Code Online (Sandbox Code Playgroud)
完成这项任务,但似乎没有.清除基于cookie的会话存储的正确方法是什么?
the*_*fme 26
如果您使用基于Cookie的会话
您可以更改rails应用程序的secret_token.这将使所有现有会话无效.
rake secret
Run Code Online (Sandbox Code Playgroud)
然后将值复制到
RAILS_ROOT/config/initializers/session_store.rb
Run Code Online (Sandbox Code Playgroud)
而已.请记住在此之后重新启动您的应用;)
如果您使用基于数据库的会话
rake db:sessions:clear
Run Code Online (Sandbox Code Playgroud)
如果您使用基于文件的会话
rake tmp:sessions:clear
Run Code Online (Sandbox Code Playgroud)
问题是cookie是客户端.显然,在服务器上运行rake任务不会删除访问过该网页的所有计算机上的cookie.
也许你可以session.clear以某种方式在你的控制器中使用?不过,你改变cookie密钥是对的.这样做会使属于旧密钥的任何会话无效.你必须从ActionController::StaleSession(或类似的东西)拯救,但它的工作.
| 归档时间: |
|
| 查看次数: |
15523 次 |
| 最近记录: |