0

I have a project using devise_token_auth for authentication. I have installed Active Admin following this.

When I try to access localhost:3000/admin I get You need to sign in or sign up before continuing.

However, when I comment config.authentication_method = :authenticate_admin_user! in config/initializers/active_admin.rb, localhost:3000/admin opens the dashboard page.

My question is why am I not getting the login page for active admin?

4

1 回答 1

2

使用ActiveAdmin(AA) 和devise_token_auth. AA 用途:

  • Devise用于认证
  • :admin作为默认命名空间

这意味着您的所有 AA 资源都将在/admineg下具有路由,/admin/posts并且它们将使用Devise;进行身份验证。不是devise_token_auth

为了同时使用这两种身份验证系统,您必须使用两种命名空间:一种用于 AA,另一种用于 devise_token_auth。

在这种情况下,一个常见的策略是在 devise_token_auth 之前定义 AA 路由,如下所示:

Rails.application.routes.draw do

  # AA routes available at /admin
  devise_for :admin_users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)

  # token auth routes available at /api/v1/auth
  namespace :api do
    scope :v1 do
      mount_devise_token_auth_for 'User', at: 'auth'
    end
  end

end

这里 AA 正在使用:admin_users,token_auth 将使用:users表。不要忘记使它们适应您的需求。

注意:如果您ApplicationController在使用 AA 和 devise_token_auth 时遇到问题,请参阅此链接

于 2017-11-30T13:10:41.283 回答