getAccessToken: async () => {
const token = getCookie(APP_SAVE_KEY.TOKEN_KEY);
return `${token}`;
},
getRefreshToken: async () => {
const refreshToken = getCookie(APP_SAVE_KEY.REFRESH_TOKEN_KEY);
return `${refreshToken}`;
},
onInvalidRefreshToken: () => {
notification.error({ message: 'Your session expired!', placement: 'top' });
window.location.href = '/login';
deleteCookie(APP_SAVE_KEY.TOKEN_KEY);
deleteCookie(APP_SAVE_KEY.REFRESH_TOKEN_KEY);
},
executeRefreshToken: async () => {
const refreshToken = getCookie(APP_SAVE_KEY.REFRESH_TOKEN_KEY);
if (!refreshToken) {
return {
token: '',
refresh_token: '',
};
}
const r = await axios.post('oauth2/token', `grant_type=refresh_token&refresh_token=${refreshToken}`, {
baseURL : process.env.NEXT_PUBLIC_DEV_API_URL,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
Authorization: 'Basic d2ViQXBwQ2xpZW50OnZuYS1jbGllbnQ',
},
});
return {
token: r.data?.access_token,
refresh_token: r.data?.refresh_token,
};
},
onRefreshTokenSuccess: ({ token, refresh_token }) => {
if (token && refresh_token) {
setCookie(APP_SAVE_KEY.TOKEN_KEY, token);
setCookie(APP_SAVE_KEY.REFRESH_TOKEN_KEY, refresh_token);
}
},
});