1、Editor组件的editorConfig参数合并未使用深度合并,外部的props如何传入的话,会导致二级参数都丢失,改为深度合并。
2、在后台删除token、refreshtoken后,前台仍缓存token的情况下,如果直接访问login页面会卡死打不开。在需要登出的判断处强制删除本地token并重走路由守卫。 (cherry picked from commit 877734639d665b38f4c4b554c74545060c923f34)pull/840/head
parent
3d07ebcbe8
commit
b85e91c210
|
|
@ -8,6 +8,7 @@ import { ElMessage } from 'element-plus'
|
|||
import { useLocaleStore } from '@/store/modules/locale'
|
||||
import { getRefreshToken, getTenantId } from '@/utils/auth'
|
||||
import { getUploadUrl } from '@/components/UploadFile/src/useUpload'
|
||||
import merge from 'lodash-es/merge'
|
||||
|
||||
defineOptions({ name: 'Editor' })
|
||||
|
||||
|
|
@ -75,7 +76,7 @@ const handleCreated = (editor: IDomEditor) => {
|
|||
|
||||
// 编辑器配置
|
||||
const editorConfig = computed((): IEditorConfig => {
|
||||
return Object.assign(
|
||||
return merge(
|
||||
{
|
||||
placeholder: '请输入内容...',
|
||||
readOnly: props.readonly,
|
||||
|
|
|
|||
|
|
@ -161,6 +161,8 @@ service.interceptors.response.use(
|
|||
}
|
||||
// 2. 进行刷新访问令牌
|
||||
try {
|
||||
// 刷新令牌时,需要将 isRelogin.show 设置为 false,解决在后台失效token,前端缓存token,登录页卡死的问题
|
||||
isRelogin.show = false
|
||||
const refreshTokenRes = await refreshToken()
|
||||
// 2.1 刷新成功,则回放队列的请求 + 当前请求
|
||||
setToken((await refreshTokenRes).data.data)
|
||||
|
|
@ -246,7 +248,12 @@ const handleAuthorized = () => {
|
|||
if (!isRelogin.show) {
|
||||
// 如果已经到登录页面则不进行弹窗提示
|
||||
if (window.location.href.includes('login')) {
|
||||
return
|
||||
// 后台refreshtoken失效,前台缓存token存在,直接访问Login页面会卡死。
|
||||
// 清除掉token,重新走路由守卫,确保本地即使缓存了token也是能正常加载登录页,前提是要确保isRelogin.show为false
|
||||
// https://wx.zsxq.com/group/88858522214142/topic/45811881251414188
|
||||
removeToken()
|
||||
window.location.href = window.location.href
|
||||
// return
|
||||
}
|
||||
isRelogin.show = true
|
||||
ElMessageBox.confirm(t('sys.api.timeoutMessage'), t('common.confirmTitle'), {
|
||||
|
|
|
|||
Loading…
Reference in New Issue