Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _cognito(self, **kwargs):
"""Get the client credentials."""
return pycognito.Cognito(
user_pool_id=self.cloud.user_pool_id,
client_id=self.cloud.cognito_client_id,
user_pool_region=self.cloud.region,
botocore_config=botocore.config.Config(signature_version=botocore.UNSIGNED),
session=self._session,
**kwargs,
)
"""Log user in and fetch certificate."""
try:
async with self._request_lock:
assert not self.cloud.is_logged_in, "Cannot login if already logged in."
cognito = self._cognito(username=email)
await self.cloud.run_executor(
partial(cognito.authenticate, password=password)
)
self.cloud.id_token = cognito.id_token
self.cloud.access_token = cognito.access_token
self.cloud.refresh_token = cognito.refresh_token
await self.cloud.run_executor(self.cloud.write_user_info)
except ForceChangePasswordException:
raise PasswordChangeRequired()
except ClientError as err:
raise _map_aws_exception(err)
except EndpointConnectionError:
raise UnknownError()