# Functions
TokenHandler takes a token source, gets a token, and modifies a request to add the token auth as a header.
# Variables
ErrInvalidProfile is thrown when a profile is missing or invalid.
# Structs
AuthorizationCodeHandler sets up the OAuth 2.0 authorization code with PKCE authentication flow.
AuthorizationCodeTokenSource with PKCE as described in: https://www.oauth.com/oauth2-servers/pkce/ This works by running a local HTTP server on port 8484 and then having the user log in through a web browser, which redirects to the redirect url with an authorization code.
ClientCredentialsHandler implements the Client Credentials OAuth2 flow.
RefreshTokenSource will use a refresh token to try and get a new token before calling the original token source to get a new token.