预留登出接口

dev
smallchill 6 years ago
parent ca1d5e3b66
commit 6bde1ce755
  1. 16
      src/api/user.js
  2. 4
      src/page/lock/index.vue
  3. 2
      src/router/axios.js
  4. 39
      src/store/modules/user.js

@ -43,18 +43,18 @@ export const getCaptcha = () => request({
method: 'get' method: 'get'
}); });
export const logout = () => request({
url: '/api/blade-auth/oauth/logout',
method: 'get'
});
export const getUserInfo = () => request({ export const getUserInfo = () => request({
url: baseUrl + '/user/getUserInfo', url: '/api/blade-auth/oauth/user-info',
method: 'get' method: 'get'
}); });
export const sendLogs = (list) => request({ export const sendLogs = (list) => request({
url: baseUrl + '/user/logout', url: '/api/blade-auth/oauth/logout',
method: 'post', method: 'post',
data: list data: list
}) });
export const logout = () => request({
url: baseUrl + '/user/logout',
method: 'get'
})

@ -54,7 +54,7 @@ export default {
}); });
}, },
handleLogin() { handleLogin() {
if (this.passwd != this.lockPasswd) { if (this.passwd !== this.lockPasswd) {
this.passwd = ""; this.passwd = "";
this.$message({ this.$message({
message: "解锁密码错误,请重新输入", message: "解锁密码错误,请重新输入",
@ -105,4 +105,4 @@ export default {
.lock-form { .lock-form {
width: 300px; width: 300px;
} }
</style> </style>

@ -54,7 +54,7 @@ axios.interceptors.response.use(res => {
//获取状态码 //获取状态码
const status = res.data.code || res.status; const status = res.data.code || res.status;
const statusWhiteList = website.statusWhiteList || []; const statusWhiteList = website.statusWhiteList || [];
const message = res.data.msg || '未知错误'; const message = res.data.msg || res.data.error_description || '未知错误';
//如果在白名单里则自行catch逻辑处理 //如果在白名单里则自行catch逻辑处理
if (statusWhiteList.includes(status)) return Promise.reject(res); if (statusWhiteList.includes(status)) return Promise.reject(res);
//如果是401则跳转到登录页面 //如果是401则跳转到登录页面

@ -3,13 +3,13 @@ import {Message} from 'element-ui'
import {setStore, getStore} from '@/util/store' import {setStore, getStore} from '@/util/store'
import {isURL, validatenull} from '@/util/validate' import {isURL, validatenull} from '@/util/validate'
import {deepClone} from '@/util/util' import {deepClone} from '@/util/util'
import webiste from '@/config/website' import website from '@/config/website'
import {loginByUsername, getUserInfo, logout, refreshToken, getButtons} from '@/api/user' import {loginByUsername, getUserInfo, logout, refreshToken, getButtons} from '@/api/user'
import {getTopMenu, getRoutes} from '@/api/system/menu' import {getTopMenu, getRoutes} from '@/api/system/menu'
function addPath(ele, first) { function addPath(ele, first) {
const menu = webiste.menu; const menu = website.menu;
const propsConfig = menu.props; const propsConfig = menu.props;
const propsDefault = { const propsDefault = {
label: propsConfig.label || 'name', label: propsConfig.label || 'name',
@ -118,16 +118,16 @@ const user = {
LogOut({commit}) { LogOut({commit}) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
logout().then(() => { logout().then(() => {
commit('SET_TOKEN', '') commit('SET_TOKEN', '');
commit('SET_MENU', []) commit('SET_MENU', []);
commit('SET_MENU_ID', {}) commit('SET_MENU_ID', {});
commit('SET_MENU_ALL', []); commit('SET_MENU_ALL', []);
commit('SET_ROLES', []) commit('SET_ROLES', []);
commit('DEL_ALL_TAG'); commit('DEL_ALL_TAG');
commit('CLEAR_LOCK'); commit('CLEAR_LOCK');
removeToken() removeToken();
removeRefreshToken() removeRefreshToken();
resolve() resolve();
}).catch(error => { }).catch(error => {
reject(error) reject(error)
}) })
@ -136,23 +136,23 @@ const user = {
//注销session //注销session
FedLogOut({commit}) { FedLogOut({commit}) {
return new Promise(resolve => { return new Promise(resolve => {
commit('SET_TOKEN', '') commit('SET_TOKEN', '');
commit('SET_MENU_ID', {}) commit('SET_MENU_ID', {});
commit('SET_MENU_ALL', []); commit('SET_MENU_ALL', []);
commit('SET_MENU', []) commit('SET_MENU', []);
commit('SET_ROLES', []) commit('SET_ROLES', []);
commit('DEL_ALL_TAG'); commit('DEL_ALL_TAG');
commit('CLEAR_LOCK'); commit('CLEAR_LOCK');
removeToken() removeToken();
removeRefreshToken() removeRefreshToken();
resolve() resolve();
}) })
}, },
//获取顶部菜单 //获取顶部菜单
GetTopMenu() { GetTopMenu() {
return new Promise(resolve => { return new Promise(resolve => {
getTopMenu().then((res) => { getTopMenu().then((res) => {
const data = res.data.data || [] const data = res.data.data || [];
resolve(data) resolve(data)
}) })
}) })
@ -165,7 +165,7 @@ const user = {
let menu = deepClone(data); let menu = deepClone(data);
menu.forEach(ele => { menu.forEach(ele => {
addPath(ele, true); addPath(ele, true);
}) });
commit('SET_MENU', menu) commit('SET_MENU', menu)
dispatch('GetButtons'); dispatch('GetButtons');
resolve(menu) resolve(menu)
@ -175,7 +175,7 @@ const user = {
}, },
mutations: { mutations: {
SET_TOKEN: (state, token) => { SET_TOKEN: (state, token) => {
setToken(token) setToken(token);
state.token = token; state.token = token;
setStore({name: 'token', content: state.token, type: 'session'}) setStore({name: 'token', content: state.token, type: 'session'})
}, },
@ -230,7 +230,6 @@ const user = {
result.push(code); result.push(code);
} }
} }
}) })
} }

Loading…
Cancel
Save