Skip to main content

authentication_flow

Authentication flow and session management.

Classes

AuthEnvironmentError

class AuthEnvironmentError(*args, **kwargs):

Exception related to the authorization and authentication environment.

Ancestors

BitfountSession

class BitfountSession(    auth_domain: str = 'auth.bitfount.com',    client_id: str = '8iCJ33Kp6hc9ofrXTzr5GLxMRHWrlzZO',    username: str = '_default',    scopes: str = 'profile openid offline_access',    audience: str = 'https://hub.bitfount.com/api',):

Manages session-based interactions with Bitfount.

Extends requests.Session, appending an access token to the authorization of any requests made if an access token is present

When the token expires it will request a new token prior to sending the web request.

Attributes

  • access_token_expires_at: The time at which the access token expires.
  • device_code: The device code returned by the Bitfount API.
  • device_code_arrival_time: The time at which the device code was issued.
  • device_code_expires_at: The time at which the device code expires.
  • id_token: The ID token returned by the Bitfount API.
  • refresh_token: The refresh token returned by the Bitfount API.
  • token_file: The path to the file where the token is stored.
  • token_request_interval: The time between token requests.
  • user_storage_path: The path to the file where the user is stored.

Ancestors

Methods


def authenticate(self)> None:

Authenticates user to allow protected requests.

Prompts the user to login/authenticate and stores the tokens to use them in future requests.

Raises

  • AssertionError: If user storage path corresponds to a different username from the BitfountSession.
  • ConnectionError: If a token cannot be retrieved.
def request(    self, method, url, params=None, data=None, headers=None, **kwargs,)> Response:

Performs an HTTP request.

Overrides requests.session.request, appending our access token to the request headers or API keys if present.

Variables

  • access_token : Optional[str] - Returns the access token. Tries to refresh it if needed.
  • api_keys - Returns API keys to be used for the current session if they exist.

    These are cached so they don't need to be retrieved every time.

  • authenticated : bool - Returns true if we have an unexpired access token or API Keys.
  • expired : bool - Whether or not the access token has expired.

    Returns: True if the token has expired

  • username : str - Returns the username of the authenticated user.