Sha256: ad5e09011af1482d7ff315f1eed930b9c470a1f386b7299f9080a93b46636820

Contents?: true

Size: 1009 Bytes

Versions: 13

Compression:

Stored size: 1009 Bytes

Contents

module Doorkeeper
  module OAuth
    class IdTokenRequest
      attr_accessor :pre_auth, :auth, :resource_owner

      def initialize(pre_auth, resource_owner)
        @pre_auth       = pre_auth
        @resource_owner = resource_owner
      end

      def authorize
        if pre_auth.authorizable?
          @auth = Authorization::Token.new(pre_auth, resource_owner)
          @auth.issue_token
          @response = response
        else
          @response = error_response
        end
      end

      def deny
        pre_auth.error = :access_denied
        error_response
      end

      private

      def response
        id_token = Doorkeeper::OpenidConnect::IdToken.new(auth.token, pre_auth.nonce)

        IdTokenResponse.new(pre_auth, auth, id_token)
      end

      def error_response
        ErrorResponse.from_request pre_auth,
                                   redirect_uri: pre_auth.redirect_uri,
                                   response_on_fragment: true
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
doorkeeper-openid_connect-1.7.0 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.6.3 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.6.2 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.6.1 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.6.0 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.5.5 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.5.4 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.5.3 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.5.2 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.5.1 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.5.0 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.4.0 lib/doorkeeper/oauth/id_token_request.rb
doorkeeper-openid_connect-1.3.0 lib/doorkeeper/oauth/id_token_request.rb