def __init__(self, auth_endpoint=None, token_endpoint=None, scopes=None, client_id=None, redirect_uri=None, client_secret=None):
    self._auth_endpoint = auth_endpoint
    self._token_endpoint = token_endpoint
    self._client_id = client_id
    self._scopes = scopes
    self._redirect_uri = redirect_uri
    self._code_verifier = _generate_code_verifier()
    code_challenge = _create_code_challenge(self._code_verifier)
    self._code_challenge = code_challenge
    state = _generate_state_parameter()
    self._state = state
    self._credentials = None
    self._refresh_token = None
    self._headers = {'content-type': 'application/x-www-form-urlencoded'}
    self._expired = False
    self._client_secret = client_secret
    self._params = {'client_id': client_id, 'response_type': 'code', 'scope': ' '.join((s.strip("' ") for s in scopes)).strip("[]'"), 'redirect_uri': self._redirect_uri, 'state': state, 'code_challenge': code_challenge, 'code_challenge_method': 'S256'}
    self._refresh_token = _keyring.get_password(_keyring_service_name, _keyring_refresh_token_storage_key)
    access_token = _keyring.get_password(_keyring_service_name, _keyring_access_token_storage_key)
    if access_token:
        self._credentials = Credentials(access_token=access_token)
def __init__(self, auth_endpoint=None, token_endpoint=None, scopes=None, client_id=None, redirect_uri=None, client_secret=None):
    self._auth_endpoint = auth_endpoint
    self._token_endpoint = token_endpoint
    self._client_id = client_id
    self._scopes = scopes
    self._redirect_uri = redirect_uri
    self._code_verifier = _generate_code_verifier()
    code_challenge = _create_code_challenge(self._code_verifier)
    self._code_challenge = code_challenge
    state = _generate_state_parameter()
    self._state = state
    self._credentials = None
    self._refresh_token = None
    self._headers = {'content-type': 'application/x-www-form-urlencoded'}
    self._expired = False
    self._client_secret = client_secret
    self._params = {'client_id': client_id, 'response_type': 'code', 'scope': ' '.join((s.strip("' ") for s in scopes)).strip("[]'"), 'redirect_uri': self._redirect_uri, 'state': state, 'code_challenge': code_challenge, 'code_challenge_method': 'S256'}
    self._refresh_token = _keyring.get_password(_keyring_service_name, _keyring_refresh_token_storage_key)
    access_token = _keyring.get_password(_keyring_service_name, _keyring_access_token_storage_key)
    if access_token:
        self._credentials = Credentials(access_token=access_token)