Browse Source

feat: 新增dev模式下API文档登录不校验验证码,以适应开发调试

master
insistence 1 year ago
parent
commit
84c97bdaff
  1. 4
      ruoyi-fastapi-backend/config/env.py
  2. 11
      ruoyi-fastapi-backend/module_admin/service/login_service.py

4
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

11
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:

Loading…
Cancel
Save