Module: Basecamp::TokenProvider

Included in:
OauthTokenProvider, StaticTokenProvider
Defined in:
lib/basecamp/token_provider.rb

Overview

Interface for providing OAuth access tokens. Implement this to provide custom token management (e.g., refresh tokens).

Examples:

Static token provider

token_provider = Basecamp::StaticTokenProvider.new("your-access-token")
client = Basecamp::Client.new(config: config, token_provider: token_provider)

Custom token provider with refresh

class MyTokenProvider
  include Basecamp::TokenProvider

  def access_token
    # Return current token, refreshing if needed
  end

  def refresh
    # Refresh the token
  end
end

Instance Method Summary collapse

Instance Method Details

#access_tokenString

Returns the current access token.

Returns:

  • (String)

    the OAuth access token

Raises:

  • (NotImplementedError)


26
27
28
# File 'lib/basecamp/token_provider.rb', line 26

def access_token
  raise NotImplementedError, "#{self.class} must implement #access_token"
end

#refreshBoolean

Refreshes the access token.

Returns:

  • (Boolean)

    true if refresh succeeded



32
33
34
# File 'lib/basecamp/token_provider.rb', line 32

def refresh
  false
end

#refreshable?Boolean

Returns whether token refresh is supported.

Returns:

  • (Boolean)


38
39
40
# File 'lib/basecamp/token_provider.rb', line 38

def refreshable?
  false
end