Задать вопрос
@authoraytee

Как решить проблему с CSRF при подключении Sidekiq, Rails?

Мне нужно добавить в Rails проект веб интерфейс sidekiq, но говорит, что у меня проблема с CSRF.

Вот что пишет:

Sidekiq::Web needs a valid Rack session for CSRF protection. If this is a Rails app,
    make sure you mount Sidekiq::Web *inside* your application routes:

    Rails.application.routes.draw do
    mount Sidekiq::Web => "/sidekiq"
    ....
    end

    If this is a bare Rack app, use a session middleware before Sidekiq::Web:
    # first, use IRB to create a shared secret key for sessions and commit it
    require 'securerandom'; File.open(".session.key", "w") {|f| f.write(SecureRandom.hex(32)) }
    # now use the secret with a session cookie middleware
    use Rack::Session::Cookie, secret: File.read(".session.key"), same_site: true, max_age: 86400
    run Sidekiq::Web


И ниже выделяет:



def session(env)
    env["rack.session"] || fail(<<~EOM)
      Sidekiq::Web needs a valid Rack session for CSRF protection. If this is a Rails app,
      make sure you mount Sidekiq::Web *inside* your application routes:


Вот мой routes.rb :

require 'sidekiq'
require 'sidekiq/web'
    
Rails.application.routes.draw do
  mount Sidekiq::Web => "/sidekiq"
    
  namespace 'api' do
    namespace 'v1' do
      resources :diaries
      resources :notes
    end
  end
end


Странно, что он мне говорить прописать mount Sidekiq::Web => "/sidekiq", при том, что оно у меня уже написано
  • Вопрос задан
  • 206 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
etspring
@etspring
Начитанное быдло
сессию в куку суньте

Sidekiq::Web.use ActionDispatch::Cookies
Sidekiq::Web.use ActionDispatch::Session::CookieStore, key: "_zalupa_session"

Rails.application.routes.draw do
  mount Sidekiq::Web => "/sidekiq"
  ...
end
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы