Refactor Dockerfile to use entrypoint script, update requirements for bcrypt, and enhance FastAPI app with optional user retrieval and improved error handling
This commit is contained in:
@@ -7,6 +7,18 @@ from app.db.session import get_db
|
||||
from app.models.user import User
|
||||
|
||||
|
||||
def get_optional_user(request: Request, db: Session = Depends(get_db)) -> User | None:
|
||||
token = request.cookies.get("access_token")
|
||||
if not token:
|
||||
return None
|
||||
try:
|
||||
payload = jwt.decode(token, settings.secret_key, algorithms=[settings.algorithm])
|
||||
user_id = int(payload.get("sub"))
|
||||
except (JWTError, TypeError, ValueError):
|
||||
return None
|
||||
return db.query(User).filter(User.id == user_id, User.is_active.is_(True)).first()
|
||||
|
||||
|
||||
def get_current_user(request: Request, db: Session = Depends(get_db)) -> User:
|
||||
token = request.cookies.get("access_token")
|
||||
if not token:
|
||||
|
||||
Reference in New Issue
Block a user