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 | |