Fix jwt-token

This commit is contained in:
2025-08-28 08:24:20 +02:00
parent 9b31494d9c
commit 7a6a2edd56
4 changed files with 34 additions and 299 deletions

View File

@@ -51,6 +51,11 @@ const Devices = () => {
fetchDevices();
} catch (error) {
console.error('Error approving device:', error);
if (error.response?.status === 401 || error.response?.status === 403) {
alert('Your session has expired. Please log in again.');
return;
}
alert('Error approving device: ' + (error.response?.data?.message || error.message));
}
};
@@ -61,6 +66,11 @@ const Devices = () => {
fetchDevices();
} catch (error) {
console.error('Error rejecting device:', error);
if (error.response?.status === 401 || error.response?.status === 403) {
alert('Your session has expired. Please log in again.');
return;
}
alert('Error rejecting device: ' + (error.response?.data?.message || error.message));
}
}
};
@@ -559,6 +569,14 @@ const DeviceModal = ({ device, onClose, onSave }) => {
onSave();
} catch (error) {
console.error('Error saving device:', error);
// Check if it's a token expiration error
if (error.response?.status === 401 || error.response?.status === 403) {
alert('Your session has expired. Please log in again.');
// The API interceptor will handle the logout automatically
return;
}
alert('Error saving device: ' + (error.response?.data?.message || error.message));
} finally {
setSaving(false);

View File

@@ -48,11 +48,16 @@ api.interceptors.request.use(
api.interceptors.response.use(
(response) => response,
(error) => {
if (error.response?.status === 401) {
// Token expired or invalid - remove token and let ProtectedRoute handle navigation
localStorage.removeItem('token');
// Force a state update by dispatching a custom event
window.dispatchEvent(new CustomEvent('auth-logout'));
if (error.response?.status === 401 || error.response?.status === 403) {
// Check if it's a token-related error
const errorMessage = error.response?.data?.message || '';
if (errorMessage.includes('token') || errorMessage.includes('expired') || error.response?.status === 401) {
console.warn('🔐 Token expired or invalid - logging out');
// Token expired or invalid - remove token and let ProtectedRoute handle navigation
localStorage.removeItem('token');
// Force a state update by dispatching a custom event
window.dispatchEvent(new CustomEvent('auth-logout'));
}
}
return Promise.reject(error);
}