feat: add authenticated http factory to create an axios instance with bearer header

This commit is contained in:
kolaente 2022-01-14 21:52:00 +01:00 committed by Dominik Pschenitschni
parent 7c954e9168
commit 59da6686d0
Signed by: dpschen
GPG Key ID: B257AC0149F43A77
2 changed files with 15 additions and 8 deletions

View File

@ -1,7 +1,18 @@
import axios from 'axios'
import {getToken} from '@/helpers/auth'
export const HTTPFactory = () => {
export function HTTPFactory() {
return axios.create({
baseURL: window.API_URL,
})
}
export function AuthenticatedHTTPFactory(token = getToken()) {
return axios.create({
baseURL: window.API_URL,
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json',
},
})
}

View File

@ -1,4 +1,4 @@
import {HTTPFactory} from '@/http-common'
import {HTTPFactory, AuthenticatedHTTPFactory} from '@/http-common'
import {i18n, getCurrentLanguage, saveLanguage} from '@/i18n'
import {objectToSnakeCase} from '@/helpers/case'
import {LOADING} from '../mutation-types'
@ -215,13 +215,9 @@ export default {
return
}
const HTTP = HTTPFactory()
const HTTP = AuthenticatedHTTPFactory(jwt)
try {
const response = await HTTP.get('user', {
headers: {
Authorization: `Bearer ${jwt}`,
},
})
const response = await HTTP.get('user')
const info = new UserModel(response.data)
info.type = state.info.type
info.email = state.info.email