refactor(auth): 将认证状态迁移至独立登录 store
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user