File size: 1,305 Bytes
eacd1b2
4bcc24f
 
 
 
 
 
eacd1b2
4bcc24f
843254d
2de61d8
 
4bcc24f
 
 
 
 
 
 
17aa58a
 
 
 
 
 
 
 
 
 
 
 
 
5676a9e
 
 
 
 
 
 
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
34
35
36
37
38
39
from pydantic import BaseModel
from dotenv import load_dotenv
from supabase import create_client
from functools import lru_cache
import os

@lru_cache(maxsize=1)
class Supabase_Settings(BaseModel):

    SUPABASE_URL: str = os.getenv("SUPABASE_URL")
    SUPABASE_ANON_KEY: str = os.getenv("SUPABASE_ANON_KEY")
    SUPABASE_SERVICE_KEY: str = os.getenv("SUPABASE_SERVICE_KEY")



@lru_cache(maxsize=1)
class Supabase_Clients:
    values = Supabase_Settings()
    anon_supabase = create_client(values.SUPABASE_URL, values.SUPABASE_ANON_KEY)
    service_supabase = create_client(values.SUPABASE_URL, values.SUPABASE_SERVICE_KEY)


def AuthUser_Validator(apitoken: str):
    supabase_clients = Supabase_Clients()
    settings = Supabase_Settings()
    supabase = supabase_clients.anon_supabase
    try:
        user = supabase.auth.get_user(apitoken)
        print(user.user.id)
        return str(user.user.id)
    except Exception as e:
        print("Exceptional error")
        return "Exceptional error"
        # if apitoken == settings.SUPABASE_ANON_KEY:
        #     return "Exceptional error"
        #     raise HTTPException(
        #         status_code=401,
        #         detail=f"invalid Api Token: unable to parse or verify signature, signing method (alg) is unavailable.",
        #     )