diff --git a/snowy-admin-web/.env.development b/snowy-admin-web/.env.development index 4f5f665a..272a212f 100644 --- a/snowy-admin-web/.env.development +++ b/snowy-admin-web/.env.development @@ -12,3 +12,5 @@ VITE_PORT = 81 # 开启设置抽屉 VITE_SET_DRAWER = true +VITE_APP_ID = wxd504412d92c5ffe7 +VITE_APP_KEY = 0c7bf34850bb54158d261e5914e807ee diff --git a/snowy-admin-web/.env.production b/snowy-admin-web/.env.production index cc8d8d42..6b7be147 100644 --- a/snowy-admin-web/.env.production +++ b/snowy-admin-web/.env.production @@ -12,3 +12,5 @@ VITE_PORT = 81 # 开启设置抽屉 VITE_SET_DRAWER = false +VITE_APP_ID = wxd504412d92c5ffe7 +VITE_APP_KEY = 0c7bf34850bb54158d261e5914e807ee diff --git a/snowy-admin-web/package.json b/snowy-admin-web/package.json index abb8a77e..0e25b564 100644 --- a/snowy-admin-web/package.json +++ b/snowy-admin-web/package.json @@ -54,7 +54,8 @@ "vue-router": "4.3.0", "vue3-colorpicker": "2.3.0", "vue3-tree-org": "4.2.2", - "vuedraggable-es": "4.1.1" + "vuedraggable-es": "4.1.1", + "crypto-js": "4.0.0" }, "devDependencies": { "@babel/eslint-parser": "7.19.1", diff --git a/snowy-admin-web/src/utils/request.js b/snowy-admin-web/src/utils/request.js index cd756acd..9d240617 100644 --- a/snowy-admin-web/src/utils/request.js +++ b/snowy-admin-web/src/utils/request.js @@ -14,7 +14,7 @@ import qs from 'qs' import { Modal, message, notification } from 'ant-design-vue' import sysConfig from '@/config/index' import tool from '@/utils/tool' - +import CryptoUtil from './cryptoUtil' // 以下这些code需要重新登录 const reloadCodes = [401, 1011007, 1011008] const errorCodeMap = { @@ -41,15 +41,27 @@ const service = axios.create({ // HTTP request 拦截器 service.interceptors.request.use( (config) => { + Object.assign(config.headers, sysConfig.HEADERS) const token = tool.data.get('TOKEN') if (token) { config.headers[sysConfig.TOKEN_NAME] = sysConfig.TOKEN_PREFIX + token } + const appTime = new Date().getTime() if (!sysConfig.REQUEST_CACHE && config.method === 'get') { config.params = config.params || {} - config.params._ = new Date().getTime() + config.params.appTime = appTime + config.params.appId = import.meta.env.VITE_APP_ID + } else { + config.data = config.data || {} + config.data.appTime = appTime + config.data.appId = import.meta.env.VITE_APP_ID + } + const bodyString = CryptoUtil.objectKeySort(Object.assign({}, config.params, config.data)) + const sign = CryptoUtil.makeSign(import.meta.env.VITE_APP_ID, import.meta.env.VITE_APP_KEY, bodyString) + config.headers['appSign'] = sign + if (config.data) { + config.data = qs.stringify(config.data) } - Object.assign(config.headers, sysConfig.HEADERS) return config }, (error) => { diff --git a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/controller/AuthController.java b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/controller/AuthController.java index 9802812b..22db99d4 100644 --- a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/controller/AuthController.java +++ b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/controller/AuthController.java @@ -78,7 +78,7 @@ public class AuthController { **/ @Operation(summary = "B端账号密码登录") @PostMapping("/auth/b/doLogin") - public CommonResult doLogin(@RequestBody @Valid AuthAccountPasswordLoginParam authAccountPasswordLoginParam) { + public CommonResult doLogin(@Valid AuthAccountPasswordLoginParam authAccountPasswordLoginParam) { return CommonResult.data(authService.doLogin(authAccountPasswordLoginParam, SaClientTypeEnum.B.getValue())); }