簡體   English   中英

重定向Active Admin登錄以設計登錄

[英]Redirect Active Admin login to Devise Login

在我的應用程序中,我已經成功安裝了Devise,它的工作非常好。 然后我第一次安裝了Active Admin for Admin面板並設置了路徑。 現在當我嘗試登錄Active Admin localhost:3000/admin/login它會將我重定向到Devise的登錄頁面 我知道可能有愚蠢的錯誤,但不知道如何解決這個問題?

應用程序/配置/初始化/ active_admin.rb

ActiveAdmin.setup do |config|  #I have removed comments
 config.site_title = "Shopaholic"
 config.authentication_method = :authenticate_admin_user!
 config.current_user_method = :current_admin_user
 config.logout_link_path = :destroy_admin_user_session_path
 config.batch_actions = true
end

應用程序/配置/初始化/ devise.rb

Devise.setup do |config|
  config.secret_key = '28c01a5ccf820bb594d2b6421becfa6487df79dad52a57d49cf61f802ea00c7364215f43cdf87463503e658da69e182f8c35d668577f975fea2bdee736a5d20a'
  config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'
  require 'devise/orm/active_record'
  config.authentication_keys = [ :email ]
  config.case_insensitive_keys = [ :email ]
  config.strip_whitespace_keys = [ :email ]
  config.skip_session_storage = [:http_auth]
  config.stretches = Rails.env.test? ? 1 : 10
  config.remember_for = 2.weeks
  config.password_length = 8..128
  config.reset_password_within = 6.hours
  config.default_scope = :users
  config.sign_out_via = :delete
end

的routes.rb

Shopaholic::Application.routes.draw do
  root :to => "products#products_list"
  #root to: "admin/dashboard#index"
  devise_for :admin_users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)

  devise_for :users
  ActiveAdmin.routes(self)
end

如果您需要任何進一步的信息,請告訴我我會更新。 請幫我解決這個問題..提前謝謝

在你的

config/initializers/active_admin.rb

將以下內容添加到設置塊的底部

ActiveAdmin::BaseController.class_eval do
  skip_before_filter :authenticate_user!
end

更新:使用Rails 5.0及更高版本,您需要像這樣添加它:

config.skip_before_action :authenticate_user!

我想如果你在application_controller.rb中有這個塊,那么它會將你重定向到Devise的登錄頁面:

def after_sign_in_path_for(resource)
    users_path
end

要解決此重定向,請使用此塊而不是上面的塊:

def after_sign_in_path_for(resource)
    if resource.is_a?(AdminUser)
        admin_dashboard_path
    else
        users_path
    end
end

如果由於“before_action:authenticate_user!”而仍然存在問題 這個在application_controller.rb然后根據@YodaTravis在config / initializers / active_admin.rb的底部使用這個塊

ActiveAdmin::BaseController.class_eval do
    skip_before_filter :authenticate_user!
end

它會對你有用!!

這些文件應該在config / initializers中,而不是app / initializers中(參見:config / initializers / active_admin.rb)。

順便說一下,我建議在您的設計模型中添加一個管理列,並使用它來驗證可以訪問active_admin的管理員用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM