【发布时间】:2013-11-27 15:17:54
【问题描述】:
我想构建一个 rake 任务或工具来销毁从 CLI 调用的所有活动会话,当我需要时以及每晚大约晚上 9:00 左右。
我发现 Devise 可以指定超时。我将设计用于用户会话。尽管系统处于非活动状态超过一个小时,但我的用户中约有三分之一的会话从未超时。
我不知道我需要什么样的工作。反馈将是一个加号。也可能是一些文档链接。此外,我无法弄清楚如何针对会话来销毁它们。 Rails 指南等并不清楚它是否会破坏一个用户的会话或所有服务器-客户端会话。我需要停用所有客户端-服务器会话。文档很棒,但我喜欢一些很好的解释。
【问题讨论】:
-
不知道为什么要始终在特定时间重置会话...强迫用户记住他们的用户名和密码绝不是一件好事。无论如何,这个其他问题应该可以帮助你:stackoverflow.com/questions/16406208/…
-
对于“时间卡”系统。这不是强迫他们记住他们的凭据,更多的是关于跟踪他们登录和注销的时间——但如果他们从不注销,那么这一点就完全丢失了。我喜欢更改会话的想法,但似乎您实际上必须手动更改 config/initializers/session_store 脚本。我的第一个想法是制作一个脚本,用随机生成的键值自动更改它——但随后版本控制几乎消失了。据您所知,有没有办法解决这个问题?
-
但是如果你强制退出,你仍然不知道你的用户退出的实际时间。在我看来,您真正想要的只是跟踪登录时间。
-
这基本上是正确的。如果他们的会话仍处于活动状态,则无法生成新的时间卡。所有会议必须在一天结束时关闭,才能在第二天打开考勤卡。该卡跟踪登录时间、第一个帐户完成时间、午餐和午餐时间、最后一个帐户完成时间、完成的帐户总数和注销。如果用户没有注销,我们会取消最后一个帐户完成时间。注销不如登录重要,但我们试图鼓励人们记住要注销。
标签: ruby-on-rails-3 session devise ubuntu-12.04 ruby-1.8.7