Loading src/portal_service/api/auth/routes.py +5 −2 Changes for src/portal_service/api/auth/routes.py: 5 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ from typing import Annotated import structlog from fastapi import APIRouter, Depends, HTTPException, Request, Response, status from fastapi.responses import RedirectResponse from starlette.concurrency import run_in_threadpool from portal_service.api.auth.schemas import CurrentUser, LogoutResponse from portal_service.api.auth.verification import _decode_id_token, _decode_token Loading Loading @@ -123,7 +124,9 @@ async def callback( ) if issued.tokens.id_token is None: raise InvalidTokenError("Keycloak returned no ID token") claims = _decode_id_token(issued.tokens.id_token, expected_nonce=attempt.nonce) claims = await run_in_threadpool( _decode_id_token, issued.tokens.id_token, expected_nonce=attempt.nonce ) created = await session_service.create(subject=claims.sub, issued=issued) except AuthenticationError as exc: Loading Loading @@ -167,7 +170,7 @@ async def me(session: CurrentSessionDep) -> CurrentUser: is verified again here, including its expiry. """ try: claims = _decode_token(session.tokens.access_token) claims = await run_in_threadpool(_decode_token, session.tokens.access_token) except AuthenticationError as exc: # Includes an expired access token; refreshing it comes next. logger.info("session token no longer usable", error=str(exc)) Loading Loading
src/portal_service/api/auth/routes.py +5 −2 Changes for src/portal_service/api/auth/routes.py: 5 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ from typing import Annotated import structlog from fastapi import APIRouter, Depends, HTTPException, Request, Response, status from fastapi.responses import RedirectResponse from starlette.concurrency import run_in_threadpool from portal_service.api.auth.schemas import CurrentUser, LogoutResponse from portal_service.api.auth.verification import _decode_id_token, _decode_token Loading Loading @@ -123,7 +124,9 @@ async def callback( ) if issued.tokens.id_token is None: raise InvalidTokenError("Keycloak returned no ID token") claims = _decode_id_token(issued.tokens.id_token, expected_nonce=attempt.nonce) claims = await run_in_threadpool( _decode_id_token, issued.tokens.id_token, expected_nonce=attempt.nonce ) created = await session_service.create(subject=claims.sub, issued=issued) except AuthenticationError as exc: Loading Loading @@ -167,7 +170,7 @@ async def me(session: CurrentSessionDep) -> CurrentUser: is verified again here, including its expiry. """ try: claims = _decode_token(session.tokens.access_token) claims = await run_in_threadpool(_decode_token, session.tokens.access_token) except AuthenticationError as exc: # Includes an expired access token; refreshing it comes next. logger.info("session token no longer usable", error=str(exc)) Loading