Spaces:
Sleeping
Sleeping
from fastapi import Depends, HTTPException, status | |
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials | |
from global_state import get | |
from db.tbs_db import TbsDb | |
from db_model.user import UserModel | |
# 创建一个 HTTPBearer 实例 | |
security = HTTPBearer() | |
def get_current_user(credentials: HTTPAuthorizationCredentials = Depends(security)): | |
token = credentials.credentials | |
# 假设你有一个函数来验证Token并返回用户 | |
user = validate_token(token) | |
if user is None: | |
raise HTTPException( | |
status_code=status.HTTP_401_UNAUTHORIZED, | |
detail="Invalid authentication credentials", | |
headers={"WWW-Authenticate": "Bearer"}, | |
) | |
return user | |
def validate_token(token: str): | |
db_module_filename = f"{get('project_root')}/db/cloudflare.py" | |
query = f"SELECT * FROM users where api_key='{token}'" | |
response = TbsDb(db_module_filename, "Cloudflare").get_item(query) | |
if response is None: | |
return None | |
result = response['result'][0]['results'] | |
if len(result) == 0: | |
return None | |
result = result[0] | |
result=UserModel(**result) | |
return result | |