【问题标题】:Devise authenticate_admin wrong redirect设计 authenticate_admin 错误重定向
【发布时间】:2014-04-04 08:32:35
【问题描述】:

我有一个带有User 模型和以下路由的应用:

devise_for :users, path: 'account',
  path_names: { sign_in: 'login', sign_out: 'logout' },
  controllers: { registrations: 'registrations' }

还有一个安装在“/admin”的可安装引擎,带有AdminUser 模型和以下路线:

devise_for :admin_users, class_name: "MyEngine::AdminUser", module: :devise,
  path: '', path_names: {sign_in: 'login', sign_out: 'logout'},
  controllers: { registrations: 'my_engine/registrations' }

在引擎应用程序控制器中,我有before_filter :authenticate_admin_user!,它错误地 重定向到ma​​in_app 根路径,而不是管理员登录(或任何登录)页面,给出:

Completed 401 Unauthorized

为什么这样做而不要求 admin_user 登录?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 devise rails-engines


    【解决方案1】:

    我不得不在 main_app 路由中添加设计路由,并稍微更改了登录/注销路径:

    devise_for :admin_users, class_name: "MyEngine::AdminUser", module: :devise,
      path: '', path_names: {sign_in: 'admin/login', sign_out: 'admin/logout'},
      controllers: { registrations: 'my_engine/registrations' }
    

    我仍然认为应该有一种方法可以在 gem 中完成这一切,但现在这工作......

    【讨论】:

      【解决方案2】:

      你试过了吗:

      #config/routes.rb
      devise_for :admin_users, class_name: "MyEngine::AdminUser", module: :devise,
        path: '', path_names: {sign_in: 'login', sign_out: 'logout'},
        controllers: { registrations: 'my_engine/registrations', sessions: "my_enging/sessions" }
      
      #app/controllers/admin/sessions_controller.rb
      class Admin::SessionsController < ::Devise::SessionsController
      
          protected
      
          #Logout Path
          def after_sign_out_path_for(resource_or_scope)
              admin_root_path
          end
      
          #Login Path (if already logged in)
          def after_sign_in_path_for(resource)
              admin_root_path
          end
      
      end
      

      【讨论】:

      • 嗨 Rich,这不是真正的问题,问题是我什至无法登录资源,所以这些都没有被击中。
      • 嗯嗯好的。值得提供代码以供将来参考:) 自从你提出这个问题以来,你取得了任何进展吗?
      • 刚刚发布了我的“解决方案”:)
      猜你喜欢
      • 2013-03-29
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      相关资源
      最近更新 更多