Commit 725147ee authored by 智勇's avatar 智勇

interceptor

parent 94f9ad5d
import { loginByUsername, logout, getUserInfo } from '@/api/login' import { loginByUsername, getUserInfo } from '@/api/login'
// import { loginByUsername, logout, getUserInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth' import { getToken, setToken, removeToken } from '@/utils/auth'
const user = { const user = {
...@@ -49,11 +50,7 @@ const user = { ...@@ -49,11 +50,7 @@ const user = {
const username = userInfo.username.trim() const username = userInfo.username.trim()
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
loginByUsername(username, userInfo.password).then(response => { loginByUsername(username, userInfo.password).then(response => {
if (response.data.code !== '0000') { const data = response.data
console.log(1, response.data.msg)
reject(`${response.data.msg}`)
}
const data = response.data.data
commit('SET_TOKEN', data.token) commit('SET_TOKEN', data.token)
setToken(data.token) setToken(data.token)
resolve(response) resolve(response)
...@@ -67,10 +64,10 @@ const user = { ...@@ -67,10 +64,10 @@ const user = {
GetUserInfo({ commit, state }) { GetUserInfo({ commit, state }) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
getUserInfo(state.token).then(response => { getUserInfo(state.token).then(response => {
if (response.data.code !== '0000') { // if (response.data.code !== '0000') {
reject('Verification failed, please login again.') // reject('Verification failed, please login again.')
} // }
const data = response.data const data = response
data.roles = ['admin'] data.roles = ['admin']
if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组 if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
...@@ -104,16 +101,19 @@ const user = { ...@@ -104,16 +101,19 @@ const user = {
// 登出 // 登出
LogOut({ commit, state }) { LogOut({ commit, state }) {
return new Promise((resolve, reject) => { commit('SET_TOKEN', '')
logout(state.token).then(() => { commit('SET_ROLES', [])
commit('SET_TOKEN', '') removeToken()
commit('SET_ROLES', []) // return new Promise((resolve, reject) => {
removeToken() // logout(state.token).then(() => {
resolve() // commit('SET_TOKEN', '')
}).catch(error => { // commit('SET_ROLES', [])
reject(error) // removeToken()
}) // resolve()
}) // }).catch(error => {
// reject(error)
// })
// })
}, },
// 前端 登出 // 前端 登出
......
...@@ -2,6 +2,7 @@ import axios from 'axios' ...@@ -2,6 +2,7 @@ import axios from 'axios'
import { Message } from 'element-ui' import { Message } from 'element-ui'
import store from '@/store' import store from '@/store'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import { MessageBox } from 'element-ui'
// create an axios instance // create an axios instance
const service = axios.create({ const service = axios.create({
...@@ -28,40 +29,40 @@ service.interceptors.request.use( ...@@ -28,40 +29,40 @@ service.interceptors.request.use(
// response interceptor // response interceptor
service.interceptors.response.use( service.interceptors.response.use(
response => response, // response => response,
/** /**
* 下面的注释为通过在response里,自定义code来标示请求状态 * 下面的注释为通过在response里,自定义code来标示请求状态
* 当code返回如下情况则说明权限有问题,登出并返回到登录页 * 当code返回如下情况则说明权限有问题,登出并返回到登录页
* 如想通过 xmlhttprequest 来状态码标识 逻辑可写在下面error中 * 如想通过 xmlhttprequest 来状态码标识 逻辑可写在下面error中
* 以下代码均为样例,请结合自生需求加以修改,若不需要,则可删除 * 以下代码均为样例,请结合自生需求加以修改,若不需要,则可删除
*/ */
// response => { response => {
// const res = response.data const res = response.data
// if (res.code !== 20000) { if (res.code !== '0000') {
// Message({ Message({
// message: res.message, message: res.msg,
// type: 'error', type: 'error',
// duration: 5 * 1000 duration: 5 * 1000
// }) })
// // 50008:非法的token; 50012:其他客户端登录了; 50014:Token 过期了; // 50008:非法的token; 50012:其他客户端登录了; 50014:Token 过期了;
// if (res.code === 50008 || res.code === 50012 || res.code === 50014) { if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
// // 请自行在引入 MessageBox // 请自行在引入 MessageBox
// // import { Message, MessageBox } from 'element-ui' // import { Message, MessageBox } from 'element-ui'
// MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确定登出', { MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确定登出', {
// confirmButtonText: '重新登录', confirmButtonText: '重新登录',
// cancelButtonText: '取消', cancelButtonText: '取消',
// type: 'warning' type: 'warning'
// }).then(() => { }).then(() => {
// store.dispatch('FedLogOut').then(() => { store.dispatch('FedLogOut').then(() => {
// location.reload() // 为了重新实例化vue-router对象 避免bug location.reload() // 为了重新实例化vue-router对象 避免bug
// }) })
// }) })
// } }
// return Promise.reject('error') return Promise.reject('error')
// } else { } else {
// return response.data return response.data
// } }
// }, },
error => { error => {
console.log('err' + error) // for debug console.log('err' + error) // for debug
Message({ Message({
......
...@@ -23,7 +23,7 @@ export default { ...@@ -23,7 +23,7 @@ export default {
}, },
created() { created() {
getIndexUrl().then(res => { getIndexUrl().then(res => {
this.indexList = res.data.data this.indexList = res.data
for (const i in this.indexList) { for (const i in this.indexList) {
this.indexList[i].color = this.color[i] this.indexList[i].color = this.color[i]
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment