diff --git a/src/auth/model.py b/src/auth/model.py index 1171466..492117f 100644 --- a/src/auth/model.py +++ b/src/auth/model.py @@ -1,7 +1,10 @@ +from typing import Optional + from pydantic import BaseModel class UserBase(BaseModel): - name: str + # Some users from auth service may not have a display name. + name: Optional[str] = None role: str user_id: str diff --git a/src/auth/service.py b/src/auth/service.py index dc68909..120e1c8 100644 --- a/src/auth/service.py +++ b/src/auth/service.py @@ -42,7 +42,10 @@ class JWTBearer(HTTPBearer): user_info, message = self.verify_jwt(credentials.credentials, method, endpoint) if not user_info: - message = message.get("message", "Invalid token or expired token.") + if isinstance(message, dict): + message = message.get("message") or message.get("detail") or "Invalid token or expired token." + else: + message = str(message) if message else "Invalid token or expired token." raise HTTPException( status_code=401, detail=message ) @@ -52,10 +55,9 @@ class JWTBearer(HTTPBearer): from src.context import set_user_id, set_username, set_role if hasattr(message, "user_id"): set_user_id(str(message.user_id)) - if hasattr(message, "username"): - set_username(message.username) - elif hasattr(message, "name"): - set_username(message.name) + username = getattr(message, "username", None) or getattr(message, "name", None) + if username: + set_username(username) if hasattr(message, "role"): set_role(message.role)