如何跳过sidekiq引擎路由的rails warden认证?

时间:2016-09-02 08:00:07

标签: ruby-on-rails-4 sidekiq sidekiq-monitor

我正在使用带有Rails 4.2.6的sidekiq 4.1.4。

路径文件的代码如下:

require 'sidekiq/web'
mount Sidekiq::Web, at: '/sidekiq'

当我通过http://localhost:3000/sidekiq访问sidekiq用户界面时,会显示错误:

{
    "errors": [
        "Unauthorized Request"
    ]
}

我使用的是warden身份验证,初始化程序文件包含以下代码:

Rails.application.config.middleware.insert_after ActionDispatch::ParamsParser, Warden::Manager do |manager|
  manager.default_strategies :authentication_token
  manager.failure_app = UnauthenticatedController
end

1 个答案:

答案 0 :(得分:0)

我可以通过以下更改访问http://my_domain.com/sidekiq的sidekiq:

使用以下代码创建初始化程序:

class MountedAppAuth
  def initialize( app )
    @app = app
  end

  def call( env )
    @app.call( env )
  end
end

在routes.rb中:

require 'sidekiq/web'
Sidekiq::Web.use MountedAppAuth
mount Sidekiq::Web, at: '/sidekiq'