From 430c8816bb3cd86eeca025e1b38ca0dd4d10daff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=89=E8=99=B9=E7=9D=BF?= <297504645@qq.com> Date: Wed, 6 Sep 2023 16:49:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=8D=95=E7=82=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=90=8C=E6=AD=A5=E5=BC=80=E5=8F=91=EF=BC=8C=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E9=9A=90=E8=97=8F=E8=8F=9C=E5=8D=95=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Code/Fe/package-lock.json | 64 ++++ Code/Fe/package.json | 1 + Code/Fe/public/config.js | 4 + Code/Fe/src/App.vue | 5 + Code/Fe/src/api/wms-auth.js | 29 +- Code/Fe/src/layout/components/Navbar.vue | 25 +- Code/Fe/src/oidc/oidc-client.js | 21 ++ Code/Fe/src/permission.js | 83 +++-- ...permission0830.js => permission_noOidc.js} | 67 ++-- Code/Fe/src/permission_old.js | 141 -------- Code/Fe/src/router/index.js | 31 +- Code/Fe/src/store/getters.js | 1 - Code/Fe/src/store/modules/permission copy.js | 319 ------------------ Code/Fe/src/store/modules/permission_old.js | 267 --------------- Code/Fe/src/store/modules/user copy.js | 168 --------- Code/Fe/src/store/modules/user.js | 87 ++++- Code/Fe/src/utils/request.js | 18 +- Code/Fe/src/views/callback/index.vue | 25 ++ Code/Fe/src/views/dashboard/index.vue | 7 +- Code/Fe/src/views/error-page/401.vue | 4 +- Code/Fe/vue.config.js | 2 +- 21 files changed, 375 insertions(+), 994 deletions(-) create mode 100644 Code/Fe/src/oidc/oidc-client.js rename Code/Fe/src/{permission0830.js => permission_noOidc.js} (67%) delete mode 100644 Code/Fe/src/permission_old.js delete mode 100644 Code/Fe/src/store/modules/permission copy.js delete mode 100644 Code/Fe/src/store/modules/permission_old.js delete mode 100644 Code/Fe/src/store/modules/user copy.js create mode 100644 Code/Fe/src/views/callback/index.vue diff --git a/Code/Fe/package-lock.json b/Code/Fe/package-lock.json index eaa1212..b32b900 100644 --- a/Code/Fe/package-lock.json +++ b/Code/Fe/package-lock.json @@ -27,6 +27,7 @@ "moment": "^2.29.1", "normalize.css": "7.0.0", "nprogress": "0.2.0", + "oidc-client": "^1.11.5", "path-to-regexp": "2.4.0", "qs": "^6.10.3", "screenfull": "4.2.0", @@ -7416,6 +7417,11 @@ "node": "*" } }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, "node_modules/css": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", @@ -16024,6 +16030,35 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, + "node_modules/oidc-client": { + "version": "1.11.5", + "resolved": "https://registry.npmmirror.com/oidc-client/-/oidc-client-1.11.5.tgz", + "integrity": "sha512-LcKrKC8Av0m/KD/4EFmo9Sg8fSQ+WFJWBrmtWd+tZkNn3WT/sQG3REmPANE9tzzhbjW6VkTNy4xhAXCfPApAOg==", + "dependencies": { + "acorn": "^7.4.1", + "base64-js": "^1.5.1", + "core-js": "^3.8.3", + "crypto-js": "^4.0.0", + "serialize-javascript": "^4.0.0" + } + }, + "node_modules/oidc-client/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/oidc-client/node_modules/core-js": { + "version": "3.32.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.32.1.tgz", + "integrity": "sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ==", + "hasInstallScript": true + }, "node_modules/omelette": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/omelette/-/omelette-0.4.5.tgz", @@ -29520,6 +29555,11 @@ "randomfill": "^1.0.3" } }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, "css": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", @@ -36331,6 +36371,30 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, + "oidc-client": { + "version": "1.11.5", + "resolved": "https://registry.npmmirror.com/oidc-client/-/oidc-client-1.11.5.tgz", + "integrity": "sha512-LcKrKC8Av0m/KD/4EFmo9Sg8fSQ+WFJWBrmtWd+tZkNn3WT/sQG3REmPANE9tzzhbjW6VkTNy4xhAXCfPApAOg==", + "requires": { + "acorn": "^7.4.1", + "base64-js": "^1.5.1", + "core-js": "^3.8.3", + "crypto-js": "^4.0.0", + "serialize-javascript": "^4.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "core-js": { + "version": "3.32.1", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.32.1.tgz", + "integrity": "sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ==" + } + } + }, "omelette": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/omelette/-/omelette-0.4.5.tgz", diff --git a/Code/Fe/package.json b/Code/Fe/package.json index 518f341..a74c05c 100644 --- a/Code/Fe/package.json +++ b/Code/Fe/package.json @@ -33,6 +33,7 @@ "moment": "^2.29.1", "normalize.css": "7.0.0", "nprogress": "0.2.0", + "oidc-client": "^1.11.5", "path-to-regexp": "2.4.0", "qs": "^6.10.3", "screenfull": "4.2.0", diff --git a/Code/Fe/public/config.js b/Code/Fe/public/config.js index 61875c1..1a6f283 100644 --- a/Code/Fe/public/config.js +++ b/Code/Fe/public/config.js @@ -15,6 +15,10 @@ window.SITE_CONFIG['appClientId'] = 'Z_App' window.SITE_CONFIG['appClientScope'] = 'Z' // 浏览器名称 window.SITE_CONFIG['browserTitle'] = '接口看板-QAD&WMS' +// 单点登录使用数据 +window.SITE_CONFIG['oidcLogin_url'] = 'http://dev.ccwin-in.com:60065', +window.SITE_CONFIG['oidcLogin_clientId'] = 'InterfaceDash_App' +window.SITE_CONFIG['oidcLogin_scopes'] = 'offline_access Z profile' // 隐藏的页面 window.SITE_CONFIG['menuHiddenConfig'] = [ 'AsnDet','PoDet','ReceiptDet','ReturnDet' diff --git a/Code/Fe/src/App.vue b/Code/Fe/src/App.vue index 0509df9..0c7f200 100644 --- a/Code/Fe/src/App.vue +++ b/Code/Fe/src/App.vue @@ -18,6 +18,11 @@ localStorage.setItem('isSinglePage',window.SITE_CONFIG['isSinglePage']) localStorage.setItem('appClientId',window.SITE_CONFIG['appClientId']) localStorage.setItem('appClientScope',window.SITE_CONFIG['appClientScope']) localStorage.setItem('browserTitle',window.SITE_CONFIG['browserTitle']) +// 单点登录使用数据 +localStorage.setItem('oidcLogin_url',window.SITE_CONFIG['oidcLogin_url']) +localStorage.setItem('oidcLogin_clientId',window.SITE_CONFIG['oidcLogin_clientId']) +localStorage.setItem('oidcLogin_scopes',window.SITE_CONFIG['oidcLogin_scopes']) +// 隐藏菜单 localStorage.setItem('menuHiddenConfig',window.SITE_CONFIG['menuHiddenConfig']) // localStorage.setItem('isAutoLogin',window.SITE_CONFIG['isAutoLogin']) diff --git a/Code/Fe/src/api/wms-auth.js b/Code/Fe/src/api/wms-auth.js index aa49b23..19e25f1 100644 --- a/Code/Fe/src/api/wms-auth.js +++ b/Code/Fe/src/api/wms-auth.js @@ -30,6 +30,15 @@ export function token(data) { }) } +// 获取用户信息(单点登录) +export function getUsersByToken(token) { + return request({ + url: localStorage.getItem('oidcLogin_url') + '/connect/userinfo', + method: 'get', + Token:token + }) +} + // 通过用户名获取用户信息 export function getUsersByUserName(name) { return request({ @@ -80,10 +89,28 @@ export function getPageListRoles(data) { } //获取权限模板 -export function getpermissionsRoles(data) { +export function getPermissionsRoles(data) { return request({ url: authApi +'/permission-management/permissions', method: 'get', params: data }) } + +// 创建角色 +export function postCreateRoles(data) { + return request({ + url: authApi + '/identity/roles', + method: 'post', + data + }) +} + +//保存权限模板 +export function savePermissionsRoles(URL, data) { + return request({ + url: authApi + URL, + method: 'put', + data + }) +} diff --git a/Code/Fe/src/layout/components/Navbar.vue b/Code/Fe/src/layout/components/Navbar.vue index 51236ad..6f12500 100644 --- a/Code/Fe/src/layout/components/Navbar.vue +++ b/Code/Fe/src/layout/components/Navbar.vue @@ -1,5 +1,5 @@