From 6565c50e08d07add37c29a3ab03df9cb7993d928 Mon Sep 17 00:00:00 2001 From: insistence <3055204202@qq.com> Date: Thu, 11 Dec 2025 17:00:12 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E4=BD=BF=E7=94=A8=E4=B8=8A=E4=B8=8B=E6=96=87?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-fastapi-backend/common/annotation/log_annotation.py | 7 ++++--- .../module_admin/service/login_service.py | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ruoyi-fastapi-backend/common/annotation/log_annotation.py b/ruoyi-fastapi-backend/common/annotation/log_annotation.py index a0df36a..59a0637 100644 --- a/ruoyi-fastapi-backend/common/annotation/log_annotation.py +++ b/ruoyi-fastapi-backend/common/annotation/log_annotation.py @@ -15,12 +15,13 @@ from starlette.status import HTTP_200_OK from typing_extensions import ParamSpec from user_agents import parse +from common.context import RequestContext from common.enums import BusinessType from config.env import AppConfig from exceptions.exception import LoginException, ServiceException, ServiceWarning from module_admin.entity.vo.log_vo import LogininforModel, OperLogModel from module_admin.service.log_service import LoginLogService, OperationLogService -from module_admin.service.login_service import LoginService +from utils.dependency_util import DependencyUtil from utils.log_util import logger from utils.response_util import ResponseUtil @@ -61,6 +62,7 @@ class Log: # 获取上下文信息 request_name_list = get_function_parameters_name_by_type(func, Request) request = get_function_parameters_value_by_name(func, request_name_list[0], *args, **kwargs) + DependencyUtil.check_exclude_routes(request, err_msg='当前路由不在认证规则内,不可使用Log装饰器') session_name_list = get_function_parameters_name_by_type(func, AsyncSession) query_db = get_function_parameters_value_by_name(func, session_name_list[0], *args, **kwargs) request_method = request.method @@ -122,8 +124,7 @@ class Log: await LoginLogService.add_login_log_services(query_db, LogininforModel(**login_log)) else: - token = request.headers.get('Authorization') - current_user = await LoginService.get_current_user(request, token, query_db) + current_user = RequestContext.get_current_user() oper_name = current_user.user.user_name dept_name = current_user.user.dept.dept_name if current_user.user.dept else None operation_log = OperLogModel( diff --git a/ruoyi-fastapi-backend/module_admin/service/login_service.py b/ruoyi-fastapi-backend/module_admin/service/login_service.py index 6dfe31b..a7834df 100644 --- a/ruoyi-fastapi-backend/module_admin/service/login_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/login_service.py @@ -11,6 +11,7 @@ from sqlalchemy import Row from sqlalchemy.ext.asyncio import AsyncSession from common.constant import CommonConstant, MenuConstant +from common.context import RequestContext from common.enums import RedisInitKeyConfig from config.env import AppConfig, JwtConfig from config.get_db import get_db @@ -269,6 +270,8 @@ class LoginService: isDefaultModifyPwd=is_default_modify_pwd, isPasswordExpired=is_password_expired, ) + # 设置当前用户信息到上下文 + RequestContext.set_current_user(current_user) return current_user logger.warning('用户token已失效,请重新登录') raise AuthException(data='', message='用户token已失效,请重新登录')