53 lines
1.5 KiB
TypeScript
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 };
|