fix: JWT auth fallback by slug in WS handler
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s

This commit is contained in:
markov 2026-02-24 09:38:31 +01:00
parent e39c26d321
commit ffca92d08a

View File

@ -106,12 +106,21 @@ async def _authenticate(ws: WebSocket, token: str, on_behalf_of: str | None = No
try:
payload = decode_jwt(token)
member_id = payload["sub"]
# sub can be UUID (Tracker JWT) or slug (legacy BFF JWT)
result = await db.execute(
select(Member).where(Member.id == member_id)
.options(selectinload(Member.agent_config))
)
member = result.scalar_one_or_none()
logger.info("JWT auth successful for member_id=%s", member_id)
if not member and payload.get("slug"):
# Fallback: try by slug
result = await db.execute(
select(Member).where(Member.slug == payload["slug"])
.options(selectinload(Member.agent_config))
)
member = result.scalar_one_or_none()
if member:
logger.info("JWT auth successful for %s", member.slug)
except Exception as e:
logger.warning("JWT decode failed: %s", e)