Skip to content

Instantly share code, notes, and snippets.

@core01
Created February 1, 2018 05:27
Show Gist options
  • Save core01/9cb3c292576049e3be5cca0889ed3e52 to your computer and use it in GitHub Desktop.
Save core01/9cb3c292576049e3be5cca0889ed3e52 to your computer and use it in GitHub Desktop.
import { defaults, get } from 'lodash'
import axios from 'axios'
import store from '../store/store'
import def from './default'
export const connection = (options = {}) => {
if (store.getters.getToken) {
def.headers = {Authorization: store.getters.getToken}
}
const instance = axios.create(defaults(def, options))
instance.interceptors.response.use(function (response) {
const newtoken = get(response, 'headers.authorization')
if (newtoken) {
console.log('Setting new token')
store.commit('setToken', newtoken)
}
return response
}, function (error) {
switch (error.response.status) {
case 401:
store.commit('destroyToken')
break
default:
console.log(error.response)
}
return Promise.reject(error)
})
return instance
}
export default connection
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment