habulaj commited on
Commit
7d1148e
·
verified ·
1 Parent(s): 6f58369

Update routes/onboarding.py

Browse files
Files changed (1) hide show
  1. 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
- async with aiohttp.ClientSession() as session:
58
- async with session.get(f"{SUPABASE_URL}/auth/v1/user", headers=headers) as response:
59
- if response.status != 200:
60
- raise HTTPException(status_code=401, detail="Token inválido ou expirado")
 
 
 
61
 
62
- user_data = await response.json()
63
- user_id = user_data.get("id")
64
- if not user_id:
65
- raise HTTPException(status_code=400, detail="ID do usuário não encontrado")
 
 
 
 
 
 
 
 
 
 
 
 
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"