From 60b4e3f57042c32aca2be628042fd6eff5c87249 Mon Sep 17 00:00:00 2001
From: xiebin <123456>
Date: Tue, 30 Aug 2022 10:24:55 +0800
Subject: [PATCH] 优化登录相关
---
src/util/store.js | 7 +++++--
src/permission.js | 27 ++++++++++++++++++++++++++-
vue.config.js | 10 ++++++----
src/api/user.js | 5 +++++
src/router/axios.js | 5 +++++
5 files changed, 47 insertions(+), 7 deletions(-)
diff --git a/src/api/user.js b/src/api/user.js
index ae41c7c..d60fb3b 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -1,6 +1,11 @@
import request from '@/router/axios';
import website from "@/config/website";
+export const loginInfoByToken = () => request({
+ url: '/api/blade-auth/getuser/token',
+ method: 'get',
+});
+
export const loginByUsername = (tenantId, deptId, roleId, username, password, type, key, code) => request({
url: '/api/blade-auth/oauth/token',
method: 'post',
diff --git a/src/permission.js b/src/permission.js
index 2f88c34..418ad23 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -8,6 +8,8 @@
import {getToken} from '@/util/auth'
import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
+import {loginInfoByToken} from '@/api/user'
+import {Message} from "element-ui";
NProgress.configure({showSpinner: false});
const lockPage = store.getters.website.lockPage; //锁屏页
router.beforeEach((to, from, next) => {
@@ -57,7 +59,30 @@
if (meta.isAuth === false) {
next()
} else {
- next('/login')
+ // 需要判断是否单点登录
+ let token = window.sessionStorage.getItem('token')
+ if (token) {
+ loginInfoByToken.then(res => {
+ const data = res.data;
+ if (data.error_description) {
+ Message({
+ message: data.error_description,
+ type: 'error'
+ })
+ } else {
+ this.$store.commit('SET_TOKEN', data.access_token);
+ this.$store.commit('SET_REFRESH_TOKEN', data.refresh_token);
+ this.$store.commit('SET_TENANT_ID', data.tenant_id);
+ this.$store.commit('SET_USER_INFO', data);
+ this.$store.commit('DEL_ALL_TAG');
+ this.$store.commit('CLEAR_LOCK');
+ next(to.path)
+ }
+
+ })
+ } else {
+ next('/login')
+ }
}
}
})
diff --git a/src/router/axios.js b/src/router/axios.js
index 7b0a00d..101fa8a 100644
--- a/src/router/axios.js
+++ b/src/router/axios.js
@@ -39,6 +39,11 @@
if (getToken() && !isToken) {
config.headers[website.tokenHeader] = 'bearer ' + getToken()
}
+ // 获取统一登录携带的token
+ const tokensso = window.sessionStorage.getItem('token')
+ if (tokensso) {
+ config.headers[website.tokenHeader] = 'bearer ' + tokensso
+ }
//headers中配置text请求
if (config.text === true) {
config.headers["Content-Type"] = "text/plain";
diff --git a/src/util/store.js b/src/util/store.js
index 6388ec2..d4cb67d 100644
--- a/src/util/store.js
+++ b/src/util/store.js
@@ -13,6 +13,10 @@
content,
type,
} = params;
+ if (name == 'token' || name == 'refreshToken') {
+ window.sessionStorage.setItem(name, content);
+ window.localStorage.setItem(name, content);
+ }
name = keyName + name
let obj = {
dataType: typeof (content),
@@ -26,7 +30,6 @@
/**
* 获取localStorage
*/
-
export const getStore = (params = {}) => {
let {
name,
@@ -118,4 +121,4 @@
window.localStorage.clear()
}
-}
\ No newline at end of file
+}
diff --git a/vue.config.js b/vue.config.js
index 88ddef0..c43e127 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -4,7 +4,7 @@
module.exports = {
//路径前缀
- publicPath: "/",
+ publicPath: "/zhny-web",
lintOnSave: true,
productionSourceMap: false,
chainWebpack: (config) => {
@@ -39,13 +39,15 @@
},
//开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理
devServer: {
+ // 本地配置host生效
+ disableHostCheck:true,
port: 1888,
proxy: {
'/api': {
//本地服务接口地址
- // target: 'http://192.168.0.126:89',
+ target: 'http://192.168.0.207:89',
//远程演示服务地址,可用于直接启动项目
- target: 'http://182.106.212.58:8013/api',
+ // target: 'http://182.106.212.58:8013/api',
ws: true,
pathRewrite: {
'^/api': '/'
@@ -53,4 +55,4 @@
}
}
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.3