diff --git a/src/api/login.ts b/src/api/login.ts index 132fe7f..3548fea 100644 --- a/src/api/login.ts +++ b/src/api/login.ts @@ -37,4 +37,11 @@ export const checkLoginStatus = (): Promise> => { url: '/api/auth/checkLoginStatus', method: 'get' }) +} + +export const LogOut = (): Promise => { + return request({ + url: '/api/auth/logout', + method: 'get' + }) } \ No newline at end of file diff --git a/src/utils/request.ts b/src/utils/request.ts index 032a0e9..472ddb7 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -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 diff --git a/src/views/Workshop/profile.vue b/src/views/Workshop/profile.vue index 0b5b3c4..e7c16d7 100644 --- a/src/views/Workshop/profile.vue +++ b/src/views/Workshop/profile.vue @@ -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(() => {}) }