From 47b98e40436fe0da4befa0de7db7ad25f8dd32bc Mon Sep 17 00:00:00 2001 From: ktianc Date: Sun, 9 Apr 2023 15:51:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8E=A5=E5=8F=A3=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E6=97=A0=E9=99=90=E9=87=8D=E5=AE=9A=E5=90=91=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kinit-admin/src/config/axios/service.ts | 2 +- kinit-api/application/settings.py | 2 +- kinit-api/apps/vadmin/auth/utils/validation/auth.py | 4 ++-- kinit-api/apps/vadmin/system/views.py | 10 ++-------- kinit-api/core/middleware.py | 4 ++-- kinit-api/main.py | 3 ++- kinit-uni/common/request/request.js | 2 +- 7 files changed, 11 insertions(+), 16 deletions(-) diff --git a/kinit-admin/src/config/axios/service.ts b/kinit-admin/src/config/axios/service.ts index c4ac5ac..5409517 100644 --- a/kinit-admin/src/config/axios/service.ts +++ b/kinit-admin/src/config/axios/service.ts @@ -66,7 +66,7 @@ service.interceptors.response.use( // 这个状态码是和后端约定好的 const code = response.data.code || unauthorized_code const message = response.data.message || '后端接口无返回内容' - const refresh = response.headers.refresh + const refresh = response.headers['if-refresh'] if (response.config.responseType === 'blob') { // 如果是文件流,直接过 diff --git a/kinit-api/application/settings.py b/kinit-api/application/settings.py index 62ed029..a6f8c2b 100644 --- a/kinit-api/application/settings.py +++ b/kinit-api/application/settings.py @@ -11,7 +11,7 @@ from fastapi.security import OAuth2PasswordBearer """ 系统版本 """ -VERSION = "1.7.3" +VERSION = "1.7.4" """安全警告: 不要在生产中打开调试运行!""" DEBUG = True diff --git a/kinit-api/apps/vadmin/auth/utils/validation/auth.py b/kinit-api/apps/vadmin/auth/utils/validation/auth.py index 369ef9d..0890543 100644 --- a/kinit-api/apps/vadmin/auth/utils/validation/auth.py +++ b/kinit-api/apps/vadmin/auth/utils/validation/auth.py @@ -52,9 +52,9 @@ class AuthValidation: # print("当前时间", buffer_time, datetime.fromtimestamp(buffer_time)) # print("剩余时间", exp - buffer_time) if buffer_time >= exp: - request.scope["refresh"] = 1 + request.scope["if-refresh"] = 1 else: - request.scope["refresh"] = 0 + request.scope["if-refresh"] = 0 except jwt.exceptions.InvalidSignatureError: raise CustomException(msg="无效认证,请您重新登录", code=cls.error_code) except jwt.exceptions.ExpiredSignatureError: diff --git a/kinit-api/apps/vadmin/system/views.py b/kinit-api/apps/vadmin/system/views.py index 9f66a0c..fd3d14f 100644 --- a/kinit-api/apps/vadmin/system/views.py +++ b/kinit-api/apps/vadmin/system/views.py @@ -67,10 +67,7 @@ async def put_dict_types(data_id: int, data: schemas.DictType, auth: Auth = Depe @app.get("/dict/types/{data_id}/", summary="获取字典类型详细") async def get_dict_type(data_id: int, auth: Auth = Depends(AllUserAuth())): schema = schemas.DictTypeSimpleOut - return SuccessResponse( - await crud.DictTypeDal(auth.db).get_data(data_id, None, v_schema=schema), - refresh=auth.refresh - ) + return SuccessResponse(await crud.DictTypeDal(auth.db).get_data(data_id, None, v_schema=schema)) ########################################################### @@ -104,10 +101,7 @@ async def put_dict_details(data_id: int, data: schemas.DictDetails, auth: Auth = @app.get("/dict/details/{data_id}/", summary="获取字典元素详情") async def get_dict_detail(data_id: int, auth: Auth = Depends(AllUserAuth())): schema = schemas.DictDetailsSimpleOut - return SuccessResponse( - await crud.DictDetailsDal(auth.db).get_data(data_id, None, v_schema=schema), - refresh=auth.refresh - ) + return SuccessResponse(await crud.DictDetailsDal(auth.db).get_data(data_id, None, v_schema=schema)) ########################################################### diff --git a/kinit-api/core/middleware.py b/kinit-api/core/middleware.py index 266b566..79c7fe0 100644 --- a/kinit-api/core/middleware.py +++ b/kinit-api/core/middleware.py @@ -144,6 +144,6 @@ def register_jwt_refresh_middleware(app: FastAPI): @app.middleware("http") async def jwt_refresh_middleware(request: Request, call_next): response = await call_next(request) - refresh = request.scope.get('refresh', 0) - response.headers["refresh"] = str(refresh) + refresh = request.scope.get('if-refresh', 0) + response.headers["if-refresh"] = str(refresh) return response diff --git a/kinit-api/main.py b/kinit-api/main.py index 78de2af..e7a2c37 100644 --- a/kinit-api/main.py +++ b/kinit-api/main.py @@ -53,7 +53,8 @@ def create_app(): allow_origins=settings.ALLOW_ORIGINS, allow_credentials=settings.ALLOW_CREDENTIALS, allow_methods=settings.ALLOW_METHODS, - allow_headers=settings.ALLOW_HEADERS) + allow_headers=settings.ALLOW_HEADERS + ) # 挂在静态目录 if settings.STATIC_ENABLE: app.mount(settings.STATIC_URL, app=StaticFiles(directory=settings.STATIC_ROOT)) diff --git a/kinit-uni/common/request/request.js b/kinit-uni/common/request/request.js index c25d4b4..1ac8df2 100644 --- a/kinit-uni/common/request/request.js +++ b/kinit-uni/common/request/request.js @@ -42,7 +42,7 @@ http.interceptors.response.use( // 获取错误信息 const msg = res.data.message || errorCode[code] || errorCode['default'] // 是否刷新token - const refresh = res.header.refresh + const refresh = res.header['if-refresh'] if (code === 500) { toast(msg) return Promise.reject(new Error(msg))