先修改用戶退出,中午有點困先改簡單的
退出代碼在src\layout\components\Navbar.vue代碼如下,講流程這里不需要修改
methods: { toggleSideBar() { this.$store.dispatch('app/toggleSideBar') }, async logout() { await this.$store.dispatch('user/logout') this.$router.push(`/login?redirect=${this.$route.fullPath}`) } }
退出方法調用store\user.js的logout及resetToken,官方提供示例是post方式,abp退出是get方式請求
logout({ commit, state, dispatch }) { return new Promise((resolve, reject) => { logout(state.token).then(() => { commit('SET_TOKEN', '') commit('SET_ROLES', []) removeToken() resetRouter() // reset visited views and cached views // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485 dispatch('tagsView/delAllViews', null, { root: true }) resolve() }).catch(error => { reject(error) }) }) },
直接修改為
logout({ commit, state }) { return new Promise((resolve, reject) => { removeToken() resetRouter() commit('RESET_STATE') resolve() }) },
把src\api\user.js中的logout方法訪問url修改為以下代碼
export function logout() { return request({ url: '/api/account/logout', method: 'get' }) }
最后一步清除Token
resetToken({ commit }) { return new Promise(resolve => { removeToken() // must remove token first commit('RESET_STATE') resolve() }) }
測試點退出,返回登錄頁,並將cookie中的token清除成功