Update routes/onboarding.py
Browse files- routes/onboarding.py +23 -9
routes/onboarding.py
CHANGED
@@ -45,7 +45,6 @@ SUPABASE_ROLE_HEADERS = {
|
|
45 |
logging.basicConfig(level=logging.INFO)
|
46 |
logger = logging.getLogger(__name__)
|
47 |
|
48 |
-
# Função para verificar token e permissões
|
49 |
async def verify_token_with_permissions(user_token: str, required_permission: Optional[str] = None) -> Dict[str, Any]:
|
50 |
"""Verifica o token e retorna ID do usuário e suas permissões"""
|
51 |
headers = {
|
@@ -54,15 +53,30 @@ async def verify_token_with_permissions(user_token: str, required_permission: Op
|
|
54 |
"Content-Type": "application/json"
|
55 |
}
|
56 |
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
|
|
|
|
|
|
61 |
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
|
67 |
# Obter permissões do usuário
|
68 |
user_data_url = f"{SUPABASE_URL}/rest/v1/User?id=eq.{user_id}&select=is_admin,edit_onboarding"
|
|
|
45 |
logging.basicConfig(level=logging.INFO)
|
46 |
logger = logging.getLogger(__name__)
|
47 |
|
|
|
48 |
async def verify_token_with_permissions(user_token: str, required_permission: Optional[str] = None) -> Dict[str, Any]:
|
49 |
"""Verifica o token e retorna ID do usuário e suas permissões"""
|
50 |
headers = {
|
|
|
53 |
"Content-Type": "application/json"
|
54 |
}
|
55 |
|
56 |
+
# Log para depuração
|
57 |
+
logger.info("Iniciando verificação de token")
|
58 |
+
|
59 |
+
try:
|
60 |
+
async with aiohttp.ClientSession() as session:
|
61 |
+
auth_url = f"{SUPABASE_URL}/auth/v1/user"
|
62 |
+
logger.info(f"Enviando requisição para {auth_url}")
|
63 |
|
64 |
+
async with session.get(auth_url, headers=headers) as response:
|
65 |
+
status = response.status
|
66 |
+
logger.info(f"Resposta da verificação do token: {status}")
|
67 |
+
|
68 |
+
if status != 200:
|
69 |
+
response_text = await response.text()
|
70 |
+
logger.error(f"Erro na autenticação: {status} - {response_text}")
|
71 |
+
raise HTTPException(status_code=401, detail=f"Token inválido ou expirado: {response_text}")
|
72 |
+
|
73 |
+
user_data = await response.json()
|
74 |
+
user_id = user_data.get("id")
|
75 |
+
if not user_id:
|
76 |
+
raise HTTPException(status_code=400, detail="ID do usuário não encontrado na resposta")
|
77 |
+
|
78 |
+
# Log para depuração
|
79 |
+
logger.info(f"Token válido para usuário {user_id}, verificando permissões")
|
80 |
|
81 |
# Obter permissões do usuário
|
82 |
user_data_url = f"{SUPABASE_URL}/rest/v1/User?id=eq.{user_id}&select=is_admin,edit_onboarding"
|