Sha256: 5d9c52af0527d4947215ca8803ed56b46866c5f3e950894cee6665fa90c285c0

Contents?: true

Size: 1.02 KB

Versions: 4

Compression:

Stored size: 1.02 KB

Contents

module Rack
  module OAuth2
    module Server
      module Rails
        class Authorize < Server::Authorize
          def initialize(app)
            super()
            @app = app
          end

          def call(env)
            prepare_oauth_env env
            @app.call env
          rescue Rack::OAuth2::Server::Abstract::Error => e
            e.finish
          end

          private

          def prepare_oauth_env(env)
            response_type = response_type_for(
              Server::Authorize::Request.new(env)
            ).new
            response_type.call(env)
            response_type.response.extend ResponseExt
            env[REQUEST]  = response_type.request
            env[RESPONSE] = response_type.response
          rescue Rack::OAuth2::Server::Abstract::Error => e
            env[ERROR] = e
          end

          module ResponseExt
            include Rails::ResponseExt

            def approve!
              super
              finish
            end
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rack-oauth2-1.5.1 lib/rack/oauth2/server/rails/authorize.rb
rack-oauth2-1.5.0 lib/rack/oauth2/server/rails/authorize.rb
rack-oauth2-1.4.0 lib/rack/oauth2/server/rails/authorize.rb
rack-oauth2-1.3.1 lib/rack/oauth2/server/rails/authorize.rb