32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
|
from fastapi import Depends, HTTPException, status
|
||
|
from fastapi.security import APIKeyHeader
|
||
|
from fastapi.security import HTTPBasic, HTTPBasicCredentials
|
||
|
from config import conf
|
||
|
import logging as log
|
||
|
|
||
|
security = HTTPBasic()
|
||
|
api_key_header = APIKeyHeader(name="X-API-KEY", auto_error=False)
|
||
|
|
||
|
|
||
|
def verify_token_admin(token: str = Depends(api_key_header)):
|
||
|
if token != conf.token.admin:
|
||
|
log.warning("Invalid token")
|
||
|
raise HTTPException(
|
||
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||
|
detail="Invalid authentication credentials",
|
||
|
headers={"WWW-Authenticate": "Bearer"},
|
||
|
)
|
||
|
|
||
|
|
||
|
def verify_user_pwd(credentials: HTTPBasicCredentials = Depends(security)):
|
||
|
if (
|
||
|
credentials.username != conf.admin_user.login
|
||
|
or credentials.password != conf.admin_user.pwd
|
||
|
):
|
||
|
log.warning("Invalid credentials")
|
||
|
raise HTTPException(
|
||
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||
|
detail="Invalid credentials",
|
||
|
headers={"WWW-Authenticate": "Basic"},
|
||
|
)
|