Files
aso/frontend/dashboard/src/utils/token.ts
2022-06-15 15:15:49 +07:00

53 lines
1.5 KiB
TypeScript

import axios from './axios';
// ----------------------------------------------------------------------
// const isValidToken = (accessToken: string) => {
// if (!accessToken) {
// return false;
// }
// const decoded = jwtDecode<{ exp: number }>(accessToken);
// const currentTime = Date.now() / 1000;
// return decoded.exp > currentTime;
// };
// const handleTokenExpired = () => {
// let expiredTimer;
// window.clearTimeout(expiredTimer);
// const currentTime = Date.now();
// const timeLeft = exp * 1000 - currentTime;
// console.log(timeLeft);
// expiredTimer = window.setTimeout(() => {
// console.log('expired');
// // You can do what ever you want here, like show a notification
// }, timeLeft);
// };
const setSession = (accessToken: string | null) => {
if (accessToken) {
localStorage.setItem('accessToken', accessToken);
axios.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
// This function below will handle when token is expired
// const { exp } = jwtDecode(accessToken);
// handleTokenExpired(exp);
} else {
localStorage.removeItem('accessToken');
delete axios.defaults.headers.common.Authorization;
}
};
const setUser = (user: any) => {
if (user) {
localStorage.setItem('user', user);
} else {
localStorage.removeItem('user');
}
};
const getSession = () => window.localStorage.getItem('accessToken')
const getUser = () => window.localStorage.getItem('user')
export { setSession, getSession, setUser, getUser };