Files
revenue-fe/src/auth/_helpers.ts
fro1991 d216a5bb8c update
2025-02-01 22:15:17 +07:00

54 lines
1.4 KiB
TypeScript

import { User as Auth0UserModel } from '@auth0/auth0-spa-js';
import { getData, setData } from '@/utils';
import { type AuthModel } from './_models';
// import https from 'https'
const AUTH_LOCAL_STORAGE_KEY = `${import.meta.env.VITE_APP_NAME}-auth-v${import.meta.env.VITE_APP_VERSION}`;
const getAuth = (): AuthModel | undefined => {
try {
const auth = getData(AUTH_LOCAL_STORAGE_KEY) as AuthModel | undefined;
if (auth) {
return auth;
} else {
return undefined;
}
} catch (error) {
console.error('AUTH LOCAL STORAGE PARSE ERROR', error);
}
};
const setAuth = (auth: AuthModel | Auth0UserModel) => {
setData(AUTH_LOCAL_STORAGE_KEY, auth);
};
const removeAuth = () => {
if (!localStorage) {
return;
}
try {
localStorage.removeItem(AUTH_LOCAL_STORAGE_KEY);
} catch (error) {
console.error('AUTH LOCAL STORAGE REMOVE ERROR', error);
}
};
export function setupAxios(axios: any) {
axios.defaults.headers.Accept = 'application/json';
axios.interceptors.request.use(
(config: { headers: { Authorization: string }; params?: any; url?: any; httpsAgent: any }) => {
const auth = getAuth();
if (auth?.access_token) {
config.headers.Authorization = `Bearer ${auth.access_token}`;
}
return config;
},
async (err: any) => await Promise.reject(err)
);
}
export { AUTH_LOCAL_STORAGE_KEY, getAuth, removeAuth, setAuth };