selective_stack.rb 810 B

1234567891011121314151617181920212223242526272829303132
  1. # frozen_string_literal: true
  2. # Sessions are required for OmniAuth to work. This middleware will conditionally
  3. # enable sessions for the OAuth login flow by inserting middleware when
  4. # relevant
  5. # class SelectiveStack
  6. # def initialize(app)
  7. # @app = app
  8. # end
  9. # def call(env)
  10. # if env['PATH_INFO'].start_with?('/auth/')
  11. # session_stack.build(@app).call(env)
  12. # else
  13. # @app.call(env)
  14. # end
  15. # end
  16. # private
  17. # def session_stack
  18. # @session_stack ||=
  19. # ActionDispatch::MiddlewareStack.new.tap do |middleware|
  20. # middleware.use(
  21. # Rails.application.config.session_store,
  22. # Rails.application.config.session_options,
  23. # )
  24. # middleware.use OmniAuth::Builder, &OmniAuthConfig
  25. # middleware.use ActionDispatch::Flash
  26. # end
  27. # end
  28. # end