Merge pull request 'feat : 测试sso单点登录之后的重定向路径3' (#107) from master into prod

Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/107
This commit is contained in:
clay
2024-04-29 03:28:30 +00:00
2 changed files with 89 additions and 86 deletions

View File

@@ -189,7 +189,8 @@ router.beforeEach(async (to, form, next) => {
NProgress.done() NProgress.done()
} else { } else {
sessionStorage.setItem('toView', JSON.stringify(to)) sessionStorage.setItem('toView', JSON.stringify(to))
next({path: '/api/auth/cas/login'}) window.location.href = `${window.location.origin}/api/auth/cas/login`
// next({path: '/api/auth/cas/login'})
} }
} else { } else {
if (to.path === '/login'|| to.path === '/cas/login') { if (to.path === '/login'|| to.path === '/cas/login') {

View File

@@ -1,47 +1,49 @@
import axios from "axios"; import axios from "axios";
import { AxiosCanceler } from "./axiosCanceler"; import {AxiosCanceler} from "./axiosCanceler";
import { ElMessageBox, ElNotification } from "element-plus"; import {ElMessageBox, ElNotification} from "element-plus";
import { getToken, removeToken } from "./auth"; import {getToken, removeToken} from "./auth";
axios.defaults.headers['Content-Type']='application/json' axios.defaults.headers['Content-Type'] = 'application/json'
const serveice = axios.create({ const serveice = axios.create({
baseURL: import.meta.env.VITE_BASE_URL, baseURL: import.meta.env.VITE_BASE_URL,
timeout: 6000 timeout: 6000
}) })
const axiosCanceler = new AxiosCanceler() const axiosCanceler = new AxiosCanceler()
serveice.interceptors.request.use(config=>{ serveice.interceptors.request.use(config => {
const ACCESS_TOKEN = getToken() || '' const ACCESS_TOKEN = getToken() || ''
if(ACCESS_TOKEN!==undefined && ACCESS_TOKEN!=='') { if (ACCESS_TOKEN !== undefined && ACCESS_TOKEN !== '') {
config.headers['Authorization']=ACCESS_TOKEN config.headers['Authorization'] = ACCESS_TOKEN
} }
// 检查是否有重复请求, 有则取消掉 // 检查是否有重复请求, 有则取消掉
axiosCanceler.removePendingRequest(config) axiosCanceler.removePendingRequest(config)
// 将请求加入pendingMap // 将请求加入pendingMap
axiosCanceler.addPendingRequest(config) axiosCanceler.addPendingRequest(config)
return config return config
},error=>{ }, error => {
Promise.reject(error) Promise.reject(error)
}) })
serveice.interceptors.response.use(response=>{ serveice.interceptors.response.use(response => {
axiosCanceler.removePendingRequest(response.config) axiosCanceler.removePendingRequest(response.config)
//二进制数据直接返回 //二进制数据直接返回
if(response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') { if (response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') {
return response.data return response.data
} }
console.log("windows", window.location.pathname)
return response.data return response.data
},error=>{ }, error => {
let response = error.response let response = error.response
const status = response.status; const status = response.status;
switch(status) { switch (status) {
case 401: case 401:
ElMessageBox.confirm('登录状态已过期,请重新登录','系统提示',{ ElMessageBox.confirm('登录状态已过期,请重新登录', '系统提示', {
confirmButtonText: '重新登录', confirmButtonText: '重新登录',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning',
closeOnClickModal: false closeOnClickModal: false
}).then(()=>{ }).then(() => {
removeToken() removeToken()
sessionStorage.setItem('toView', window.location.pathname)
window.location = '/api/auth/cas/login' window.location = '/api/auth/cas/login'
}) })
return Promise.reject('会话已过期,请重新登录') return Promise.reject('会话已过期,请重新登录')
@@ -79,9 +81,9 @@ serveice.interceptors.response.use(response=>{
window.location = '/forbidden' window.location = '/forbidden'
break; break;
case 500: case 500:
if (response.data){ if (response.data) {
return response.data return response.data
}else { } else {
ElNotification({ ElNotification({
title: '系统提示', title: '系统提示',
message: '系统未知错误', message: '系统未知错误',