https 替换
This commit is contained in:
@@ -6,8 +6,18 @@ import { APP_CONFIG } from 'shared/config'
|
||||
// @ts-ignore
|
||||
import { loadRoutesFromStorage } from './dynamicRoute'
|
||||
|
||||
// workcase应用的动态路由会根据layout字段自动添加,不需要预定义Root布局
|
||||
const routes: RouteRecordRaw[] = []
|
||||
// 公开路由(不需要登录认证)
|
||||
const routes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: '/meeting',
|
||||
name: 'Meeting',
|
||||
component: () => import('@/views/public/JitsiMeeting/JitsiMeetingView.vue'),
|
||||
meta: {
|
||||
title: '视频会议',
|
||||
requiresAuth: false // 不需要登录认证,允许通过token访问
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory('/workcase'), // 与nginx保持一致,使用/workcase前缀
|
||||
@@ -34,9 +44,10 @@ router.beforeEach(async (to, from, next) => {
|
||||
// 检查URL参数中是否有token(用于外部链接和小程序访问)
|
||||
const tokenParam = to.query.token as string | undefined
|
||||
|
||||
// 如果URL中有token,但localStorage中没有loginDomain,使用refresh接口验证
|
||||
if (tokenParam && !localStorage.getItem('loginDomain')) {
|
||||
console.log('[Workcase Router] 检测到token参数,尝试验证登录状态...')
|
||||
// 如果URL中有token参数,使用refresh接口验证并刷新登录状态
|
||||
// 这样可以用新token覆盖旧的登录状态(如果有的话)
|
||||
if (tokenParam) {
|
||||
console.log('[Workcase Router] 检测到token参数,尝试验证并刷新登录状态...')
|
||||
try {
|
||||
const response = await fetch('/api/urban-lifeline/auth/refresh', {
|
||||
method: 'POST',
|
||||
@@ -52,12 +63,12 @@ router.beforeEach(async (to, from, next) => {
|
||||
const loginDomain = result.data
|
||||
const newToken = loginDomain.token
|
||||
|
||||
// 保存到localStorage
|
||||
// 保存到localStorage(覆盖旧的登录状态)
|
||||
localStorage.setItem('token', newToken)
|
||||
localStorage.setItem('loginDomain', JSON.stringify(loginDomain))
|
||||
TokenManager.setToken(newToken)
|
||||
|
||||
console.log('[Workcase Router] Token验证成功,登录状态已保存')
|
||||
console.log('[Workcase Router] Token验证成功,登录状态已刷新')
|
||||
} else {
|
||||
console.warn('[Workcase Router] Token验证失败:', result.message)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user