|
|
|
import boto3 |
|
from tools.helper_functions import get_or_create_env_var |
|
|
|
client_id = get_or_create_env_var('AWS_CLIENT_ID', '') |
|
print(f'The value of AWS_CLIENT_ID is {client_id}') |
|
|
|
user_pool_id = get_or_create_env_var('AWS_USER_POOL_ID', '') |
|
print(f'The value of AWS_USER_POOL_ID is {user_pool_id}') |
|
|
|
def authenticate_user(username, password, user_pool_id=user_pool_id, client_id=client_id): |
|
"""Authenticates a user against an AWS Cognito user pool. |
|
|
|
Args: |
|
user_pool_id (str): The ID of the Cognito user pool. |
|
client_id (str): The ID of the Cognito user pool client. |
|
username (str): The username of the user. |
|
password (str): The password of the user. |
|
|
|
Returns: |
|
bool: True if the user is authenticated, False otherwise. |
|
""" |
|
|
|
client = boto3.client('cognito-idp') |
|
|
|
try: |
|
response = client.initiate_auth( |
|
AuthFlow='USER_PASSWORD_AUTH', |
|
AuthParameters={ |
|
'USERNAME': username, |
|
'PASSWORD': password, |
|
}, |
|
ClientId=client_id |
|
) |
|
|
|
|
|
if response.get('AuthenticationResult'): |
|
return True |
|
else: |
|
return False |
|
|
|
except client.exceptions.NotAuthorizedException: |
|
return False |
|
except client.exceptions.UserNotFoundException: |
|
return False |
|
except Exception as e: |
|
print(f"An error occurred: {e}") |
|
return False |