Browse Source

feat:将所有 router.push() 改为 router.replace()

zhangwl 2 months ago
parent
commit
bd7175eaca
2 changed files with 3 additions and 51 deletions
  1. 1 49
      chat-ai-ui-main/src/App.vue
  2. 2 2
      chat-ai-ui-main/src/router/index.ts

+ 1 - 49
chat-ai-ui-main/src/App.vue

@@ -1,54 +1,6 @@
 <script setup lang="ts">
-import { onMounted } from 'vue';
-import { useRouter } from 'vue-router';
-import { useUserStore } from './stores/user';
-import axios from 'axios';
-
-const router = useRouter();
-const userStore = useUserStore();
-
-onMounted(async () => {
-  // 从 URL 中提取 token 和 source 参数
-  const params = new URLSearchParams(window.location.search);
-  const token = params.get('token');
-  const source = params.get('source');
-
-  // 如果有 token,说明是从第三方跳转过来
-  if (token) {
-    try {
-      // 调用后端接口验证 token 并获取用户信息
-      const { data } = await axios.post(
-        `${import.meta.env.VITE_API_URL}/users/login`,
-        { token, source },
-        { headers: { 'Content-Type': 'application/json' } }
-      );
-
-      // 设置用户状态
-      userStore.setUser({
-        userId: data.userId,
-        name: data.name,
-        refreshToken: data.refreshToken,
-      });
-
-      // 清除 URL 中的参数,然后导航到聊天页面
-      window.history.replaceState({}, '', '/chat');
-      router.replace('/chat');
-    } catch (error) {
-      console.error('Token verification failed:', error);
-      router.push('/');
-    }
-  } else if (!userStore.userId) {
-    // 如果没有 token 且用户未登录,跳转到登录页
-    router.replace('/');
-  } else {
-    // 用户已登录,跳转到聊天页面
-    router.replace('/chat');
-  }
-});
 </script>
 
 <template>
-  <div>
-    <RouterView />
-  </div>
+  <RouterView />
 </template>

+ 2 - 2
chat-ai-ui-main/src/router/index.ts

@@ -1,9 +1,9 @@
 import { createRouter, createWebHistory } from 'vue-router';
-import HomeView from '../views/HomeView.vue';
+import LoadingView from '../views/LoadingView.vue';
 import ChatView from '../views/ChatView.vue';
 
 const routes = [
-  { path: '/', component: HomeView },
+  { path: '/', component: LoadingView },
   { path: '/chat', component: ChatView },
 ];