Gitlab@Informatics

Skip to content
Snippets Groups Projects
Select Git revision
  • 41c6eb42171421b7e96bfedb0b6ac0bef082c52f
  • main default protected
2 results

http.ts

Blame
  • http.ts 959 B
    import router from '@/router'
    import axios from 'axios'
    
    const instance = axios.create({
      baseURL: 'http://localhost:4000'
    })
    
    function delay(sec: number) {
      return new Promise((resolve, reject) => {
        setTimeout(() => resolve(sec), sec * 1000)
      })
    }
    
    instance.interceptors.request.use(
      async function (config) {
        const token = localStorage.getItem('access_token')
        console.log('request interceptor ' + token)
    
        if (token) {
          config.headers.Authorization = 'Bearer ' + token
        }
        console.log(config)
        return config
      },
      function (error) {
        return Promise.reject(error)
      }
    )
    // this is when after request it will respond
    instance.interceptors.response.use(
      async function (res) {
        console.log('response interceptor')
    
        await delay(0.1)
        return res
      },
      function (error) {
        if (401 === error.response.status) {
          router.replace('login')
        }
        return Promise.reject(error)
      }
    )
    export default instance