【问题标题】:401 redirect loop with Active Admin and Devise使用 Active Admin 和 Devise 的 401 重定向循环
【发布时间】:2013-04-02 21:45:20
【问题描述】:

我有一个带有 Devise (2.2.3) 和 Active Admin (0.5.1) 的应用程序,我先安装了 Devise,然后安装了 Active Admin。整个应用程序需要登录,所以在我的应用程序控制器中,我有以下内容:

before_filter :authenticate_user!

但是,自从将 Active Admin 安装到根命名空间(config.default_namespace = false,在 initializers/active_admin.rb 中)后,我的应用程序现在不允许任何人登录。它创建到路径 /users/login 的重定向循环。

我尝试通过在我的 config/application.rb 文件中添加一个 skip_before_filter 来缓解这种情况,但这没有奏效

config.to_prepare do
  Devise::SessionsController.skip_before_filter :authenticate_user!
  UsersController.skip_before_filter :authenticate_user!
end

我还在 app/admin/user.rb 中添加了以下内容

controller do
  skip_before_filter :authenticate_user!
end

这也没有做任何事情。最后,我尝试在 application_controller.rb 中明确排除这两个控制器,但这也没有做任何事情。

before_filter :authenticate_user!, except: {controller: [:users, 'devise/sessions']}

如何解决这个相当烦人的问题?

【问题讨论】:

    标签: devise ruby-on-rails-3.2 activeadmin redirect-loop


    【解决方案1】:

    通过改变我的路线解决了这个问题。 ActiveAdmin 路由需要在 Devise 路由之后,如下所示:

    devise_for :users, ActiveAdmin::Devise.config
    ActiveAdmin.routes(self)
    

    相信这是因为我在安装和配置 Devise 后安装了 ActiveAdmin。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多