fix: JWT auth fallback by slug in WS handler
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s
Some checks failed
Deploy Tracker / deploy (push) Failing after 2s
This commit is contained in:
parent
e39c26d321
commit
ffca92d08a
@ -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)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user