fix session expiration

This commit is contained in:
Wavering Ana 2025-01-29 15:43:34 -05:00
parent ce9fcfbd7c
commit 8a3ee20a9d
4 changed files with 39 additions and 12 deletions

View file

@ -1,13 +1,16 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React + TS</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>SimpleLink</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>

View file

@ -15,6 +15,20 @@ api.interceptors.request.use((config) => {
return config;
});
api.interceptors.response.use(
(response) => response,
(error) => {
if (error.response?.status === 401) {
localStorage.removeItem('token');
localStorage.removeItem('user');
window.dispatchEvent(new Event('unauthorized'));
}
return Promise.reject(error);
}
);
// Auth endpoints
export const login = async (email: string, password: string) => {
const response = await api.post<AuthResponse>('/auth/login', {

View file

@ -23,6 +23,16 @@ export function AuthProvider({ children }: { children: React.ReactNode }) {
setUser(userData);
}
setIsLoading(false);
const handleUnauthorized = () => {
setUser(null);
};
window.addEventListener('unauthorized', handleUnauthorized);
return () => {
window.removeEventListener('unauthorized', handleUnauthorized);
};
}, []);
const login = async (email: string, password: string) => {