From 84c97bdaff149b21d425d27a8df92fb340eaaebf Mon Sep 17 00:00:00 2001 From: insistence <3055204202@qq.com> Date: Fri, 26 Jan 2024 09:00:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9Edev=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E4=B8=8BAPI=E6=96=87=E6=A1=A3=E7=99=BB=E5=BD=95=E4=B8=8D?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E9=AA=8C=E8=AF=81=E7=A0=81=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E9=80=82=E5=BA=94=E5=BC=80=E5=8F=91=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-fastapi-backend/config/env.py | 4 ++-- .../module_admin/service/login_service.py | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ruoyi-fastapi-backend/config/env.py b/ruoyi-fastapi-backend/config/env.py index 5474156..224a270 100644 --- a/ruoyi-fastapi-backend/config/env.py +++ b/ruoyi-fastapi-backend/config/env.py @@ -162,8 +162,8 @@ class GetConfig: parser.add_argument('--env', type=str, default='', help='运行环境') # 解析命令行参数 args = parser.parse_args() - # 设置环境变量 - os.environ['APP_ENV'] = args.env + # 设置环境变量,如果未设置命令行参数,默认APP_ENV为dev + os.environ['APP_ENV'] = args.env if args.env else 'dev' # 读取运行环境 run_env = os.environ.get('APP_ENV', '') # 运行环境未指定时默认加载.env.dev diff --git a/ruoyi-fastapi-backend/module_admin/service/login_service.py b/ruoyi-fastapi-backend/module_admin/service/login_service.py index e208e17..363f6ee 100644 --- a/ruoyi-fastapi-backend/module_admin/service/login_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/login_service.py @@ -9,7 +9,7 @@ from module_admin.service.user_service import * from module_admin.entity.vo.login_vo import * from module_admin.entity.vo.common_vo import CrudResponseModel from module_admin.dao.login_dao import * -from config.env import JwtConfig, RedisInitKeyConfig +from config.env import AppConfig, JwtConfig, RedisInitKeyConfig from utils.common_util import CamelCaseUtil from utils.pwd_util import * from utils.response_util import * @@ -60,8 +60,13 @@ class LoginService: if login_user.user_name == account_lock: logger.warning("账号已锁定,请稍后再试") raise LoginException(data="", message="账号已锁定,请稍后再试") - # 判断是否开启验证码,开启则验证,否则不验证 - if login_user.captcha_enabled: + # 判断请求是否来自于api文档,如果是返回指定格式的结果,用于修复api文档认证成功后token显示undefined的bug + request_from_swagger = request.headers.get('referer').endswith('docs') if request.headers.get('referer') else False + request_from_redoc = request.headers.get('referer').endswith('redoc') if request.headers.get('referer') else False + # 判断是否开启验证码,开启则验证,否则不验证(dev模式下来自API文档的登录请求不检验) + if not login_user.captcha_enabled or ((request_from_swagger or request_from_redoc) and AppConfig.app_env == 'dev'): + pass + else: await cls.__check_login_captcha(request, login_user) user = login_by_account(query_db, login_user.user_name) if not user: