@@ -146,15 +146,25 @@ async def decode_token(token, secret_keys, proxied_authenticator=None):
146146 detail = "Could not validate credentials" ,
147147 headers = {"WWW-Authenticate" : "Bearer" },
148148 )
149- proxied_decoder = (
150- proxied_authenticator .decode_token if proxied_authenticator is not None else None
151- )
152- return await auth_tokens .decode_token (
153- token ,
154- secret_keys ,
155- proxied_decoder = proxied_decoder ,
156- credentials_exception = credentials_exception ,
149+ payload = auth_tokens .decode_token_with_secret_keys (token , secret_keys )
150+ if payload is not None :
151+ return payload
152+ if proxied_authenticator is not None :
153+ return await proxied_authenticator .decode_token (token )
154+ raise credentials_exception
155+
156+
157+ def decode_token_sync (token , secret_keys ):
158+ """Sync-only decode for app-minted tokens (no proxied path needed)."""
159+ credentials_exception = HTTPException (
160+ status_code = 401 ,
161+ detail = "Could not validate credentials" ,
162+ headers = {"WWW-Authenticate" : "Bearer" },
157163 )
164+ payload = auth_tokens .decode_token_with_secret_keys (token , secret_keys )
165+ if payload is not None :
166+ return payload
167+ raise credentials_exception
158168
159169
160170def _extract_scopes (decoded_access_token : dict [str , Any ]) -> set [str ]:
@@ -432,7 +442,7 @@ async def get_current_principal_websocket(
432442 return None
433443
434444 try :
435- principal = get_current_principal (
445+ principal = await get_current_principal (
436446 request = websocket ,
437447 security_scopes = security_scopes ,
438448 access_token = access_token ,
@@ -1173,9 +1183,9 @@ def revoke_session(
11731183 return JSONResponse (status_code = 200 , content = {"success" : True , "msg" : "" })
11741184
11751185
1176- async def slide_session (refresh_token , settings , db , api_access_manager ):
1186+ def slide_session (refresh_token , settings , db , api_access_manager ):
11771187 try :
1178- payload = await decode_token (refresh_token , settings .secret_keys )
1188+ payload = decode_token_sync (refresh_token , settings .secret_keys )
11791189 except ExpiredSignatureError :
11801190 raise HTTPException (status_code = 401 , detail = "Session has expired. Please re-authenticate." )
11811191 # Find this session in the database.
0 commit comments