Как я могу пропустить проверку подлинности rails warden для маршрута sidekiq engine?
Я использую sidekiq 4.1.4 с Rails 4.2.6.
Файл маршрута имеет следующий код:
require 'sidekiq/web'
mount Sidekiq::Web, at: '/sidekiq'
Когда я получаю доступ к интерфейсу sidekiq через http://localhost:3000/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 ответ
Я смог получить доступ к sidekiq по адресу http://my_domain.com/sidekiq со следующими изменениями:
Создайте инициализатор с кодом ниже:
class MountedAppAuth
def initialize( app )
@app = app
end
def call( env )
@app.call( env )
end
end
В маршрутах.rb:
require 'sidekiq/web'
Sidekiq::Web.use MountedAppAuth
mount Sidekiq::Web, at: '/sidekiq'