添加退出登录

This commit is contained in:
李志鹏
2025-10-27 14:02:26 +08:00
parent 7807f12367
commit 5c5766f4c4
3 changed files with 31 additions and 9 deletions

View File

@@ -37,4 +37,11 @@ export const checkLoginStatus = (): Promise<ApiResponse<LoginResponse>> => {
url: '/api/auth/checkLoginStatus',
method: 'get'
})
}
export const LogOut = (): Promise<ApiResponse> => {
return request({
url: '/api/auth/logout',
method: 'get'
})
}

View File

@@ -1,10 +1,8 @@
import axios from 'axios'
import { showToast, showNotify, showConfirmDialog, closeToast } from 'vant'
import { useUserInfoStore } from '@/stores/modules/userInfo'
const store = useUserInfoStore()
import { getLocal } from '@/utils/local'
import router from '@/router/index'
import { useOverallStore, useGenerateStore } from '@/stores'
import { useOverallStore, useGenerateStore, useUserInfoStore } from '@/stores'
// 扩展 AxiosRequestConfig 接口
declare module 'axios' {
@@ -47,8 +45,9 @@ service.interceptors.request.use(
}
// 如果登录了有token则请求携带token
// Do something before request is sent
if (store.state.token) {
config.headers.Authorization = getLocal('token') // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
const token = useUserInfoStore().state.token
if (token) {
config.headers.Authorization = token // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
// config.headers['X-Token'] = getLocal('token') // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
}
return config

View File

@@ -3,11 +3,15 @@
import HeaderTitle from '@/components/HeaderTitle.vue'
import FooterNavigation from '@/components/FooterNavigation.vue'
import router from '@/router'
import { showConfirmDialog } from 'vant'
import { useUserInfoStore } from '@/stores'
import { LogOut } from '@/api/login'
const userInfoStore = useUserInfoStore()
const emit = defineEmits(['view-type'])
const form = reactive({
name: { edit: false, msg: '', value: 'Momo Fashion' },
email: { edit: false, msg: '', value: 'xxx@gmail.com' },
password: { show: false, edit: false, msg: '', value: '1234556' }
name: { edit: false, msg: '', value: userInfoStore.state.userInfo.username },
email: { edit: false, msg: '', value: userInfoStore.state.userInfo.email },
password: { show: false, edit: false, msg: '', value: userInfoStore.state.userInfo.password }
})
const onEditItem = (item) => {
@@ -19,7 +23,19 @@
form[item].edit = false
}
const logout = () => {
router.push({ path: '/' })
showConfirmDialog({
title: 'Log out',
message: 'Are you sure you want to log out?',
confirmButtonText: 'Yes',
cancelButtonText: 'Cancel'
})
.then(() => {
LogOut().then(() => {
userInfoStore.logOut()
router.push({ path: '/welcome' })
})
})
.catch(() => {})
}
</script>