File size: 1,082 Bytes
ad7e4c8
 
bedce85
ad7e4c8
316a6b2
ad7e4c8
1e34f1d
bedce85
ad7e4c8
bedce85
1e34f1d
ad7e4c8
 
 
 
bedce85
ad7e4c8
 
1e34f1d
ad7e4c8
 
 
 
 
1e34f1d
 
ad7e4c8
1e34f1d
ad7e4c8
 
1e34f1d
ad7e4c8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# modules/auth/auth.py

import os
import logging
import bcrypt
from azure.cosmos import CosmosClient
from modules.database.sql_db import get_user

logger = logging.getLogger(__name__)

# Verificar las variables de entorno
COSMOS_ENDPOINT = os.getenv("COSMOS_ENDPOINT")
COSMOS_KEY = os.getenv("COSMOS_KEY")
if not COSMOS_ENDPOINT or not COSMOS_KEY:
    raise ValueError("Las variables de entorno COSMOS_ENDPOINT y COSMOS_KEY no están configuradas.")

cosmos_client = CosmosClient(COSMOS_ENDPOINT, COSMOS_KEY)

def authenticate_user(username: str, password: str):
    """
    Autentica un usuario utilizando la base de datos.
    """
    try:
        user = get_user(username)
        if user and bcrypt.checkpw(password.encode("utf-8"), user["password"].encode("utf-8")):
            logger.info(f"Usuario autenticado: {username}")
            return True, user["role"]
        logger.warning(f"Credenciales incorrectas para: {username}")
        return False, None
    except Exception as e:
        logger.error(f"Error autenticando a {username}: {e}")
        return False, None