Implementierung Wissensmanagement
Dieser Commit ist enthalten in:
@ -19,11 +19,14 @@ class AuthManager {
|
||||
// Initialize authentication state
|
||||
async init() {
|
||||
const token = api.getToken();
|
||||
console.log('[Auth] init() - Token exists:', !!token);
|
||||
|
||||
if (token) {
|
||||
try {
|
||||
// Verify token by making a request
|
||||
console.log('[Auth] Verifying token...');
|
||||
const users = await api.getUsers();
|
||||
console.log('[Auth] Token valid, users loaded');
|
||||
this.isAuthenticated = true;
|
||||
|
||||
// Get current user from stored data
|
||||
@ -35,11 +38,13 @@ class AuthManager {
|
||||
return true;
|
||||
} catch (error) {
|
||||
// Token invalid
|
||||
console.log('[Auth] Token invalid, logging out');
|
||||
this.logout();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
console.log('[Auth] No token found');
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -471,8 +476,18 @@ class SessionTimerHandler {
|
||||
}
|
||||
}
|
||||
} else if (response.status === 401) {
|
||||
// Token ungültig - ausloggen
|
||||
this.auth.logout();
|
||||
// Token ungültig - aber nur ausloggen wenn kein neuer Login stattfand
|
||||
// (Race-Condition: Alter Refresh-Request kann 401 zurückgeben nachdem
|
||||
// ein neuer Login erfolgreich war)
|
||||
const currentToken = localStorage.getItem('auth_token');
|
||||
if (currentToken === token) {
|
||||
// Gleicher Token, wirklich ungültig, ausloggen
|
||||
console.log('[Auth] Refresh returned 401, logging out');
|
||||
this.auth.logout();
|
||||
} else {
|
||||
// Token hat sich geändert (neuer Login oder bereits ausgeloggt)
|
||||
console.log('[Auth] Refresh 401 ignored - token changed (new login occurred)');
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Session refresh error:', error);
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren