mirror of
https://github.com/maxdorninger/MediaManager.git
synced 2026-04-17 21:54:00 +02:00
fix auth, so swagger shows an authorize button, add /api/v1 base url path and massively improve logging
This commit is contained in:
@@ -28,12 +28,12 @@ ALGORITHM = "HS256"
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES = 30
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.level = logging.DEBUG
|
||||
log.addHandler(logging.StreamHandler())
|
||||
|
||||
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="api/v1/token")
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
async def get_current_user(token: str) -> UserInternal:
|
||||
async def get_current_user(token: str = Depends(oauth2_scheme)) -> UserInternal:
|
||||
credentials_exception = HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
detail="Could not validate credentials",
|
||||
@@ -63,7 +63,7 @@ def create_access_token(data: dict, expires_delta: timedelta | None = None):
|
||||
if expires_delta:
|
||||
expire = datetime.now(timezone.utc) + expires_delta
|
||||
else:
|
||||
expire = datetime.now(timezone.utc) + timedelta(minutes=15)
|
||||
expire = datetime.now(timezone.utc) + timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
|
||||
to_encode.update({"exp": expire})
|
||||
encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
|
||||
return encoded_jwt
|
||||
|
||||
@@ -9,7 +9,6 @@ import database
|
||||
from auth import ACCESS_TOKEN_EXPIRE_MINUTES, create_access_token, Token, router
|
||||
from database import UserInternal
|
||||
|
||||
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
|
||||
|
||||
|
||||
|
||||
@@ -46,7 +45,6 @@ def authenticate_user(email: str, password: str) -> bool | UserInternal:
|
||||
async def login_for_access_token(
|
||||
form_data: Annotated[OAuth2PasswordRequestForm, Depends()],
|
||||
) -> Token:
|
||||
print("post:", form_data.username, form_data.password)
|
||||
user = authenticate_user(form_data.username, form_data.password)
|
||||
if not user:
|
||||
raise HTTPException(
|
||||
|
||||
@@ -10,8 +10,6 @@ from psycopg.rows import dict_row
|
||||
from pydantic import BaseModel
|
||||
|
||||
log = getLogger(__name__)
|
||||
log.level = logging.DEBUG
|
||||
log.addHandler(logging.StreamHandler())
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
import logging
|
||||
import pprint
|
||||
import sys
|
||||
|
||||
import uvicorn
|
||||
from fastapi import FastAPI
|
||||
@@ -5,11 +8,14 @@ from fastapi import FastAPI
|
||||
from routers import users
|
||||
from auth import password
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG,format="%(asctime)s - %(levelname)s - module: %(name)s - %(funcName)s(): %(message)s", stream=sys.stdout)
|
||||
|
||||
app = FastAPI(root_path="/api/v1")
|
||||
app.include_router(users.router, tags=["users"])
|
||||
app.include_router(password.router, tags=["authentication"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run(app, host="127.0.0.1", port=5049)
|
||||
uvicorn.run(app, host="127.0.0.1", port=5049)
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import logging
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
log.level = logging.DEBUG
|
||||
log = logging.getLogger(__name__)
|
||||
Reference in New Issue
Block a user