Sha256: 424f7a45f07f24a12a1dc1f838d6e94483aeb7ff664175a86d7c28bac00cb05a

Contents?: true

Size: 913 Bytes

Versions: 13

Compression:

Stored size: 913 Bytes

Contents

# frozen_string_literal: true

class GlobusClient
  # The namespace for the "login" command
  class Authenticator
    def self.token(client_id, client_secret, auth_url)
      new(client_id, client_secret, auth_url).token
    end

    def initialize(client_id, client_secret, auth_url)
      @client_id = client_id
      @client_secret = client_secret
      @auth_url = auth_url
    end

    # Request an access_token
    def token
      response = connection.post("/v2/oauth2/token", form_data)

      JSON.parse(response.body)["access_token"]
    end

    private

    attr_reader :client_id, :client_secret, :auth_url

    def connection
      Faraday.new(url: auth_url)
    end

    def form_data
      {
        client_id:,
        client_secret:,
        encoding: "form",
        grant_type: "client_credentials",
        scope: "urn:globus:auth:scope:transfer.api.globus.org:all"
      }
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
globus_client-0.12.1 lib/globus_client/authenticator.rb
globus_client-0.12.0 lib/globus_client/authenticator.rb
globus_client-0.11.1 lib/globus_client/authenticator.rb
globus_client-0.11.0 lib/globus_client/authenticator.rb
globus_client-0.10.1 lib/globus_client/authenticator.rb
globus_client-0.10.0 lib/globus_client/authenticator.rb
globus_client-0.9.1 lib/globus_client/authenticator.rb
globus_client-0.9.0 lib/globus_client/authenticator.rb
globus_client-0.8.0 lib/globus_client/authenticator.rb
globus_client-0.7.0 lib/globus_client/authenticator.rb
globus_client-0.6.0 lib/globus_client/authenticator.rb
globus_client-0.5.0 lib/globus_client/authenticator.rb
globus_client-0.4.0 lib/globus_client/authenticator.rb