refactor(auth): 将认证状态迁移至独立登录 store

This commit is contained in:
yelan
2026-08-31 10:58:05 +08:00
parent a5e0a80191
commit a261a978f2
6 changed files with 111 additions and 73 deletions
+6 -8
View File
@@ -1,8 +1,7 @@
<script setup lang="ts">
import { RouterLink, useRouter } from 'vue-router'
import { logout as logoutRequest } from '@/api/auth'
import { useAppStore } from '@/stores/app'
import { useLoginStore } from '@/stores/login'
interface MenuItem {
path: string
@@ -14,7 +13,7 @@ interface MenuGroup {
items: MenuItem[]
}
const appStore = useAppStore()
const loginStore = useLoginStore()
const router = useRouter()
const menuGroups: MenuGroup[] = [
@@ -39,11 +38,10 @@ const menuGroups: MenuGroup[] = [
async function handleLogout() {
try {
await logoutRequest()
await loginStore.logout()
} catch {
// 即使服务暂时不可用,也要清理本地会话。
} finally {
appStore.logout()
await router.push('/login')
}
}
@@ -92,10 +90,10 @@ async function handleLogout() {
</nav>
<div class="menu-profile">
<div class="menu-profile-avatar">{{ appStore.userName.slice(0, 1) }}</div>
<div class="menu-profile-avatar">{{ loginStore.userName.slice(0, 1) }}</div>
<div class="menu-profile-copy">
<strong>{{ appStore.userName }}</strong>
<span>{{ appStore.department }}</span>
<strong>{{ loginStore.userName }}</strong>
<span>{{ loginStore.department }}</span>
</div>
<button class="menu-logout" type="button" @click="handleLogout">退出</button>
</div>