# frozen_string_literal: true # Sessions are required for OmniAuth to work. This middleware will conditionally # enable sessions for the OAuth login flow by inserting middleware when # relevant # class SelectiveStack # def initialize(app) # @app = app # end # def call(env) # if env['PATH_INFO'].start_with?('/auth/') # session_stack.build(@app).call(env) # else # @app.call(env) # end # end # private # def session_stack # @session_stack ||= # ActionDispatch::MiddlewareStack.new.tap do |middleware| # middleware.use( # Rails.application.config.session_store, # Rails.application.config.session_options, # ) # middleware.use OmniAuth::Builder, &OmniAuthConfig # middleware.use ActionDispatch::Flash # end # end # end