Sha256: 79b903cf6c240b963fce00d49d1cc73e944c7b49538494947b1ca8464b4405e7

Contents?: true

Size: 986 Bytes

Versions: 1

Compression:

Stored size: 986 Bytes

Contents

module Rack
  module OAuth2
    module Server
      class Token
        class AuthorizationCode < Abstract::Handler

          def call(env)
            @request  = Request.new(env)
            @response = Response.new(request)
            super
          end

          class Request < Token::Request
            attr_accessor :code, :redirect_uri, :scope

            def initialize(env)
              super
              @grant_type   = 'authorization_code'
              @code         = params['code']
              @redirect_uri = URI.parse(params['redirect_uri'])
              @scope        = Array(params['scope'].to_s.split(' '))
            rescue URI::InvalidURIError
              raise BadRequest.new(:invalid_request, 'Invalid redirect_uri format.')
            end

            def required_params
              super + [:code, :redirect_uri]
            end
          end

          class Response < Token::Response
          end

        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack-oauth2-0.0.1 lib/rack/oauth2/server/token/authorization_code.rb