From 69ddeb4baf5cb7e38399bc2489874197b26f78eb Mon Sep 17 00:00:00 2001 From: liuyiliang Date: Fri, 19 Jul 2024 09:30:54 +0800 Subject: [PATCH] sso --- src/api/user.js | 9 +++++++ src/components/scada-login/main.vue | 41 +++++++++++++++++++++++++++++ src/permission.js | 5 ++-- src/router/page/index.js | 14 +++++++++- src/store/modules/user.js | 21 ++++++++++++++- src/views/wel/index.vue | 1 + 6 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 src/components/scada-login/main.vue diff --git a/src/api/user.js b/src/api/user.js index 90138a0..a318491 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -18,6 +18,15 @@ export const loginByUsername = (tenantId, account, password, type, key, code) => } }); +export const loginByScada = (token) => request({ + url: '/api/daf-auth/scada-token', + method: 'post', + params: { + token + } +}); + + export const loginBySocial = (tenantId, source, code, state) => request({ url: '/api/daf-auth/token', method: 'post', diff --git a/src/components/scada-login/main.vue b/src/components/scada-login/main.vue new file mode 100644 index 0000000..8a36238 --- /dev/null +++ b/src/components/scada-login/main.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/permission.js b/src/permission.js index 8fc72d8..ffdb0ef 100644 --- a/src/permission.js +++ b/src/permission.js @@ -7,7 +7,8 @@ import store from './store' import {validatenull} from '@/util/validate' import {getToken} from '@/util/auth' import NProgress from 'nprogress' // progress bar -import 'nprogress/nprogress.css' // progress bar style +import 'nprogress/nprogress.css' +import Cookies from "js-cookie"; // progress bar style NProgress.configure({showSpinner: false}); const lockPage = store.getters.website.lockPage; //锁屏页 router.beforeEach((to, from, next) => { @@ -21,7 +22,7 @@ router.beforeEach((to, from, next) => { next({path: '/'}) } else { //如果用户信息为空则获取用户信息,获取用户信息失败,跳转到登录页 - if (store.getters.token.length === 0) { + if (store.getters.token.length === 0 && !Cookies.get('scada-access-token')) { store.dispatch('FedLogOut').then(() => { next({path: '/login'}) }) diff --git a/src/router/page/index.js b/src/router/page/index.js index 01dcc4d..a1ae221 100644 --- a/src/router/page/index.js +++ b/src/router/page/index.js @@ -21,6 +21,18 @@ export default [{ isAuth: false } }, +{ + path: '/scada-login', + requiresAuth: false, + name: 'scada登录', + component: () => + import( /* webpackChunkName: "page" */ '@/components/scada-login/main'), + meta: { + keepAlive: true, + isTab: false, + isAuth: false, + } +}, { path: '/404', component: () => @@ -77,4 +89,4 @@ export default [{ path: '*', redirect: '/404' } -] \ No newline at end of file +] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index f4c6a7a..d913f5b 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -4,9 +4,10 @@ import {isURL, validatenull} from '@/util/validate' import {deepClone} from '@/util/util' import webiste from '@/config/website' import {Message, Notification} from 'element-ui' -import {loginByUsername, loginBySocial, getUserInfo, getMenu, getTopMenu, logout, refreshToken, getButtons, getLicense} from '@/api/user' +import {loginByUsername, loginByScada, loginBySocial, getUserInfo, getMenu, getTopMenu, logout, refreshToken, getButtons, getLicense} from '@/api/user' import vue from '../../main.js' import website from "../../config/website"; +import Cookies from "js-cookie"; function addPath(ele, first) { @@ -58,6 +59,22 @@ const user = { }) }) }, + loginByScada({commit}, userInfo) { + return new Promise((resolve, reject) => { + loginByScada(userInfo.token).then(res => { + const data = res.data.data; + var inFifteenMinutes = new Date(new Date().getTime() + 120 * 60 * 1000); + Cookies.set('scada-access-token', data.accessToken, { expires: inFifteenMinutes }); + commit('SET_TOKEN', data.accessToken); + commit('SET_USER_INFO', data); + commit('DEL_ALL_TAG'); + commit('CLEAR_LOCK'); + resolve(); + }).catch(error => { + reject(error); + }) + }) + }, //根据第三方信息登录 LoginBySocial({ commit }, userInfo) { return new Promise((resolve) => { @@ -118,6 +135,7 @@ const user = { LogOut({commit}) { return new Promise((resolve, reject) => { logout().then(() => { + Cookies.remove('scada-access-token'); commit('SET_TOKEN', ''); commit('SET_MENU', []) commit('SET_MENU_ALL', []); @@ -134,6 +152,7 @@ const user = { //注销session FedLogOut({commit}) { return new Promise(resolve => { + Cookies.remove('scada-access-token'); commit('SET_TOKEN', ''); commit('SET_MENU', []); commit('SET_MENU_ALL', []); diff --git a/src/views/wel/index.vue b/src/views/wel/index.vue index 199d3b9..27ede76 100644 --- a/src/views/wel/index.vue +++ b/src/views/wel/index.vue @@ -37,6 +37,7 @@ && !homePageData.manufacturerInfoAudit && !homePageData.warehouseAudit && !homePageData.workPermitAudit + && !homePageData.materialAudit && !homePageData.workOperationTicketAudit && !homePageData.toolInventoryRecordsAudit && !homePageData.equipmentLedgerAudit">