【发布时间】:2015-02-17 14:15:00
【问题描述】:
使用 Rails 4.0 和 ruby 2.1.0
我正在开展一个基于订阅的项目,并且帐户需要限制每个用户的并发会话数。例如,普通用户每个帐户 1 个并发会话,中级用户 - 每个帐户 3 个并发会话,高级用户每个帐户 10 个并发会话。
我检查了 google、stackoverflow、devise:timeoutable 或 devise_session_limit gem 等不同 gem 的每一页。我尝试了一个名为connections的字段,根据用户的不同,它是1、3或10。如果用户登录,则减少 -1 连接字段,如果用户注销,则增加 +1 连接字段。事情或问题是当用户保持打开会话并离开时,永远不会增加 +1。
有什么建议吗??我在这个任务上工作了将近 3 天,但我无法完成。
提前致谢!
【问题讨论】:
-
您尝试增加/减少连接的解决方案听起来不错,但它需要与可超时的 gem 一起使用,以便保持打开的会话可以自动超时并增加连接。
-
是的,我试过这样做,但我找不到将它放在一起的解决方案。问题是我如何控制超时关闭会话。我以这种方式搜索了类似回调的东西:在超时关闭会话之前,但我找不到任何东西。谢谢迭戈!
-
我正在寻找这个 link ,但我没有为我工作。我不知道如何重写这个模块,是吗?
-
我有同样的问题,我尝试将 session_limit 和 session_count 添加到用户表。当用户注销并发生超时注销时,它工作正常。当用户在未注销的情况下关闭浏览器时,session_count 仍然存在,我收到名为 session limit 的消息
标签: ruby-on-rails ruby session ruby-on-rails-4 devise