首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用torquebox会话限制torquebox中的用户登录

使用torquebox会话限制torquebox中的用户登录
EN

Stack Overflow用户
提问于 2012-10-17 05:25:49
回答 2查看 198关注 0票数 1

我想使用torquebox并限制用户在jruby rails应用程序上的登录,这样他就不能从多个浏览器登录。我用activerecord会话做到了这一点,当有人登录并使旧会话失效时,我跟踪用户id和会话id。

我如何在Torquebox中做类似的事情?我在TorqueBox::Session模块上看不到类方法,所以我可以使其他会话无效,只是访问intance的方法。会话如何工作的机制尚不清楚。我在这里寻找:https://github.com/torquebox/torquebox/tree/2x-dev/gems/web/lib

EN

回答 2

Stack Overflow用户

发布于 2012-12-03 11:43:40

如果您将当前的会话对象存储在本地,比如current_session

代码语言:javascript
复制
TorqueBox::Session::ServletStore.load_session_data(current_session)

这将允许您查看当前会话数据,并附带一个姊妹函数,该函数还允许您设置会话存储store_session_data(...)中的数据

代码语言:javascript
复制
TorqueBox::Session::ServletStore.store_session_data(current_session, data)

您还可以将data设置为{} (空散列)以使其无效(对于大多数意图和目的)。

当前会话对象的可用性将根据作用域的不同而不同。例如,在一个自定义小程序中,我必须对订阅服务器进行一些自省,以获取current_session对象,以便查看会话数据:

代码语言:javascript
复制
class ChatStomplet
  # ...

  def on_subscribe (subscriber)
    @subscribers[ session(subscriber)[:current_user].username ] << subscriber
  end

  # ...

  def session (subscriber)
    TorqueBox::Session::ServletStore.load_session_data(subscriber.getSession)
  end
end

您可能也应该看看ActionDispatch::Session::TorqueBoxStore应用编程接口。

我个人并没有找到太多关于这方面的文档。事实上,我仍然在寻找一种方法来找到所有当前活动的会话。如果他们实现AbstractStore's interface将会有所帮助,因为与当前Rails约定的兼容性将会有很大的帮助。

我知道这不是一个完整的答案,但希望它能给你的旅行带来一些启发。

票数 0
EN

Stack Overflow用户

发布于 2013-10-31 02:53:13

TorqueBox (至少是2.x)在session[:session_id]中存储Java session ID。如果您需要从中间件获取它,可以在env['rack.session'][:session_id]中获得它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12923658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档