设计会话限制

时间:2012-08-30 14:36:56

标签: ruby-on-rails-3 devise

我有一个运行Rails 3.2.6和Devise 2.1.2的Rails应用程序,我希望能够将并发登录限制为1.我尝试使用Devise Security Extension,但继续为unique_session_id获取未定义的方法。 / p>

相反,我想看看我是否可以覆盖Devise的行为,如本文所述:devise limit one session per user at a time

我理解它是如何工作的,我已经生成了一个会话控制器,但我不知道如何强制该应用程序将其用作Devise的覆盖。我还应该在控制器中继承应用程序控制器还是设计控制器?

现在一切都在位,但应用程序没有写一个login_token告诉我我没有正确使用控制器或其他可能不对。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我强烈建议您查看Devise Wiki。有可能在做这样的事情时,可以在那里找到答案。您的新控制器将需要继承Devise会话控制器:

class MySessionsController < Devise::SessionsController

这样,任何你没有专门覆盖的方法仍然会被调用,因此不会破坏其他功能。

为了确保Devise使用您的控制器而不是自己的控制器,请在devise_for中进行routes.rb调用,如下所示:

devise_for :users, :controllers => { :sessions => "my_sessions" }

从那里Devise将拿起你的控制器。为了确保在那里重新启动服务器可能是个好主意。