diff --git a/backend/open_webui/utils/auth.py b/backend/open_webui/utils/auth.py index 529fcdf9d..5a2ca89c7 100644 --- a/backend/open_webui/utils/auth.py +++ b/backend/open_webui/utils/auth.py @@ -16,7 +16,7 @@ from open_webui.models.users import Users from open_webui.constants import ERROR_MESSAGES from open_webui.env import WEBUI_SECRET_KEY, TRUSTED_SIGNATURE_KEY, STATIC_DIR, SRC_LOG_LEVELS -from fastapi import Depends, HTTPException, Request, Response, status +from fastapi import BackgroundTasks, Depends, HTTPException, Request, Response, status from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer from passlib.context import CryptContext @@ -145,6 +145,7 @@ def get_http_authorization_cred(auth_header: str): def get_current_user( request: Request, + background_tasks: BackgroundTasks, auth_token: HTTPAuthorizationCredentials = Depends(bearer_security), ): token = None @@ -197,7 +198,9 @@ def get_current_user( detail=ERROR_MESSAGES.INVALID_TOKEN, ) else: - Users.update_user_last_active_by_id(user.id) + # Refresh the user's last active timestamp asynchronously + # to prevent blocking the request + background_tasks.add_task(Users.update_user_last_active_by_id, user.id) return user else: raise HTTPException(