Helper Module

This module contains utility methods used by this library

intuitlib.utils.generate_token(length=30, allowed_chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')

Generates random CSRF token

Parameters:
  • length – Length of CSRF token, defaults to 30
  • allowed_chars – Characters to use, defaults to ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789’
Returns:

Token string

intuitlib.utils.get_auth_header(client_id, client_secret)

Gets authorization header

Parameters:
  • client_id – Client ID
  • client_secret – Client Secret
Returns:

Authorization header

intuitlib.utils.get_discovery_doc(environment, session=None)

Gets discovery doc based on environment specified.

Parameters:
  • environment – App environment, accepted values: ‘sandbox’,’production’,’prod’,’e2e’
  • sessionrequests.Session object if a session is already being used, defaults to None
Returns:

Discovery doc response

Raises:

HTTPError – if response status != 200

intuitlib.utils.get_jwk(kid, jwk_uri)

Get JWK for public key information

Parameters:
  • kid – KID
  • jwk_uri – JWK URI
Raises:

HTTPError – if response status != 200

Returns:

dict containing keys

intuitlib.utils.scopes_to_string(scopes)

Converts list of enum to string

Parameters:scopes (list of intuitlib.enums.Scopes) – Scopes specified for OAuth/OpenID flow
Raises:TypeError – for invalid input for scope
Returns:Scopes string
intuitlib.utils.send_request(method, url, header, obj, body=None, session=None, oauth1_header=None)

Makes API request using requests library, raises intuitlib.exceptions.AuthClientError if request not successful and sets specified object attributes from API response if request successful

Parameters:
  • method – HTTP method type
  • url – request URL
  • header – request headers
  • obj – object to set the attributes to
  • body – request body, defaults to None
  • session – requests session, defaults to None
  • oauth1_header – OAuth1 auth header, defaults to None
Raises:

AuthClientError – In case response != 200

Returns:

requests object

intuitlib.utils.set_attributes(obj, response_json)

Sets attribute to an object from a dict

Parameters:
  • obj – Object to set the attributes to
  • response_json – dict with key names same as object attributes
intuitlib.utils.validate_id_token(id_token, client_id, intuit_issuer, jwk_uri)

Validates ID Token returned by Intuit

Parameters:
  • id_token – ID Token
  • client_id – Client ID
  • intuit_issuer – Intuit Issuer
  • jwk_uri – JWK URI
Returns:

True/False