axios.ts 1008 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import axios, { type AxiosResponse } from 'axios'
  2. import { useAuthStore } from '@/store'
  3. const service = axios.create({
  4. baseURL: import.meta.env.VITE_GLOB_API_URL
  5. })
  6. service.interceptors.request.use(
  7. config => {
  8. const token = useAuthStore().token
  9. if (token) config.headers.Authorization = `Bearer ${token}`
  10. return config
  11. },
  12. error => {
  13. return Promise.reject(error.response)
  14. }
  15. )
  16. service.interceptors.response.use(
  17. (response: AxiosResponse): AxiosResponse => {
  18. if (response.status >= 200 && response.status < 300) {
  19. return response
  20. }
  21. throw new Error(response.status.toString())
  22. },
  23. error => {
  24. // if (error.response.status === 401) {
  25. // useUserStore().resetUserInfo()
  26. // }
  27. if (error.response && error.response.data) {
  28. return Promise.reject(error.response.data)
  29. } else {
  30. return Promise.reject(error)
  31. }
  32. }
  33. )
  34. export default service