Skip to content

Commit 4783b83

Browse files
committed
Fix issue where the Rack session is invalid for rake web
Without this, you will get an Internal Server Error stating: 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 Rails app in API mode, you need to enable sessions. https://guides.rubyonrails.org/api_app.html#using-session-middlewares 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
1 parent d2e664a commit 4783b83

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

Rakefile

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,13 @@ task :web do
4141

4242
require 'sidekiq/web'
4343
require 'sidecloq/web'
44+
require 'securerandom'
4445

4546
Rack::Server.start(
46-
app: Sidekiq::Web
47+
app:
48+
Rack::Builder.app do
49+
use Rack::Session::Cookie, secret: SecureRandom.hex(32), same_site: true, max_age: 86400
50+
run Sidekiq::Web
51+
end
4752
)
4853
end

0 commit comments

Comments
 (0)