0

我有一个运行 Rails 3.2.6 和 Devise 2.1.2 的 Rails 应用程序,我希望能够将并发登录限制为 1。我尝试使用 Devise 安全扩展,但不断获得用于 unique_session_id 的未定义方法。

相反,我想看看我是否可以像这篇 SO 文章中那样覆盖 Devise 的行为:设计一次限制每个用户一个会话

我了解它是如何工作的,并且我已经生成了一个会话控制器,但我不确定如何强制应用程序将其用作设计的替代。同样在控制器中,我应该从应用程序控制器还是设计控制器继承?

现在一切就绪,但是应用程序没有编写 login_token,它告诉我我没有正确使用控制器,或者其他可能有问题。

任何帮助表示赞赏。

4

1 回答 1

0

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

class MySessionsController < Devise::SessionsController

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

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

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

从那里设计将拿起你的控制器。重新启动服务器以确保安全可能是个好主意。

于 2012-08-30T14:58:10.060 回答