in src/Frontend/src/services/auth.ts [86:124]
export async function refreshToken(firebaseAuth: Auth) : Promise<IAuthSigninResponse | null> {
return new Promise<IAuthSigninResponse | null>(async (resolve, reject) => {
try {
onAuthStateChanged(firebaseAuth, async (user) => {
const userStorage : (string | null) = getCookie('user');
const access_token : (string | null) = getCookie('token');
const refresh_token : (string | null) = getCookie("refresh_token");
if (!access_token || !userStorage || !refresh_token) return reject(null);
api.post(ENDPOINT_AUTH_REFRESH, {}).then(response => {
const { id, access_token, refresh_token, token_type, scopes, user_id } = response.data;
if (!id){
AlertInstance.alert(ALERT_ERROR, 'toast.errors.error_no_data');
resolve(null);
}
resolve({
id,
access_token,
refresh_token,
token_type,
scopes,
email: JSON.parse(userStorage).email,
user_name: JSON.parse(userStorage).user_name,
user_id
});
}).catch((error: any) => {
AlertInstance.alert(ALERT_ERROR, 'toast.errors.auth.error_api');
if (process.env.NODE_ENV === 'development') console.error('[API ERROR REFRESHING TOKEN]: ' + error);
reject(null);
});
});
} catch (e) {
if (process.env.NODE_ENV === 'development') console.error('[PROMISE ERROR REFRESHING TOKEN]: ' + e);
reject(null);
}
})
}