feat: use AuthenticatedHTTPFactory for refreshToken #1546

Merged
konrad merged 1 commits from dpschen/frontend:feature/use-AuthenticatedHTTPFactory-for-refreshToken into main 2022-02-18 19:14:38 +00:00
1 changed files with 3 additions and 11 deletions

View File

@ -1,4 +1,4 @@
import {HTTPFactory} from '@/http-common'
import {AuthenticatedHTTPFactory} from '@/http-common'
import {AxiosResponse} from 'axios'
let savedToken: string | null = null
@ -6,8 +6,6 @@ let savedToken: string | null = null
/**
* Saves a token while optionally saving it to lacal storage. This is used when viewing a link share:
* It enables viewing multiple link shares indipendently from each in multiple tabs other without overriding any other open ones.
* @param token
* @param persist
*/
export const saveToken = (token: string, persist: boolean) => {
savedToken = token
@ -18,7 +16,6 @@ export const saveToken = (token: string, persist: boolean) => {
/**
* Returns a saved token. If there is one saved in memory it will use that before anything else.
* @returns {string|null}
*/
export const getToken = (): string | null => {
if (savedToken !== null) {
@ -39,16 +36,11 @@ export const removeToken = () => {
/**
* Refreshes an auth token while ensuring it is updated everywhere.
* @returns {Promise<AxiosResponse<any>>}
*/
export async function refreshToken(persist: boolean): Promise<AxiosResponse> {
const HTTP = HTTPFactory()
const HTTP = AuthenticatedHTTPFactory()
try {
const response = await HTTP.post('user/token', null, {
headers: {
Authorization: `Bearer ${getToken()}`,
},
})
const response = await HTTP.post('user/token')
saveToken(response.data.token, persist)
return response