axios.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * @Description:
  3. * @Author: 欧阳承珺
  4. * @LastEditors: 欧阳承珺
  5. * @Date: 2022-10-19 13:58:11
  6. * @LastEditTime: 2022-11-03 15:36:24
  7. */
  8. import { Message } from 'element-ui';
  9. export default function({store, app:{ $axios }, redirect} ) {
  10. $axios.onRequest(config => {
  11. $axios.setToken(store.state.token, 'Bearer')
  12. })
  13. $axios.onError(error => {
  14. const code = parseInt(error.response && error.response.status)
  15. if(code === 401) {
  16. redirect('/')
  17. Message.error('登录过期,请重新登录')
  18. store.commit('OPEN_LOGIN',false)
  19. store.commit('DEL_TOKEN','')
  20. store.commit('setUser', {})
  21. localStorage.removeItem('token')
  22. localStorage.removeItem('userInfo')
  23. return Promise.resolve(false)
  24. }
  25. if (code !== 200) {
  26. Message.error(error.response?.data?.msg)
  27. }
  28. })
  29. $axios.onResponse((res) => {
  30. if(res?.config?.url === '/auth/getImageCode') {
  31. return res
  32. }else if(res.data && res?.data?.code !== 200) {
  33. Message.error(res.data.msg)
  34. }else {
  35. return res.data
  36. }
  37. })
  38. }