Rev 658 | AutorÃa | Ultima modificación | Ver Log |
import Axios from 'axios'
const BASE_URL = 'https://dev-services.leaderslinked.com'
const axiosInstance = Axios.create()
axiosInstance.all = Axios.all
axiosInstance.spread = Axios.spread
axiosInstance.get = (_url, params = {}) => {
const headers = {
Accept: 'application/json',
Vary: 'Accept',
'Cache-Control': 'no-cache, no-store',
'Content-Type': 'application/json'
}
const token = window.localStorage.getItem('jwt')
if (token) {
headers.Authorization = 'Bearer ' + token
}
return Axios({
baseURL: BASE_URL,
url: _url,
params,
headers
})
}
axiosInstance.interceptors.request.use(
async (request) => {
request.baseURL = BASE_URL
const token = window.localStorage.getItem('jwt')
if (token) {
request.headers.Authorization = 'Bearer ' + token
}
if (['post', 'put', 'delete'].includes(request.method)) {
try {
const { data: responseData } = await axiosInstance.get('/csrf')
const { data, success } = responseData
if (success) {
request.headers['X-CSRF-TOKEN'] = data
return request
}
} catch (err) {
throw new Error(
`Axios problem with request during pre-flight phase: ${err}.`
)
}
}
},
(error) => {
return Promise.reject(error)
}
)
Axios.interceptors.response.use(
async (response) => {
const { fatal } = response.data
if (fatal) {
window.localStorage.removeItem('jwt')
window.localStorage.removeItem('aes')
window.location.reload()
return
}
return response
},
(error) => {
return Promise.reject(error)
}
)
export default axiosInstance