feat(auth): improve logout functionality and token management
Some checks failed
CI / Get Changed Files (pull_request) Successful in 6s
CI / eslint (pull_request) Successful in 26s
CI / test-build (pull_request) Successful in 33s
CI / prettier (pull_request) Failing after 50s
CI / Checkstyle Main (pull_request) Successful in 1m7s

This commit is contained in:
Jan K9f 2025-04-02 16:24:40 +02:00
commit 2e76446328
Signed by: jank
GPG key ID: B9F475106B20F144

View file

@ -206,18 +206,29 @@ export class AuthService {
try {
console.log('Logging out');
this.user = null;
this.oauthService.logOut();
// Clear any lingering token in storage
// Prevent redirect to Authentik by doing a local logout only
// Instead of using oauthService.logOut() which redirects to the provider
// Clear tokens from storage
this.oauthService.logOut(false); // logOut(false) prevents redirect
// Clear any lingering tokens manually
localStorage.removeItem('access_token');
localStorage.removeItem('id_token');
localStorage.removeItem('refresh_token');
sessionStorage.removeItem('access_token');
sessionStorage.removeItem('id_token');
sessionStorage.removeItem('refresh_token');
// Navigate to landing page
this.router.navigate(['/']);
} catch (err) {
console.error('Exception in logout:', err);
// Force clear tokens
this.oauthService.revokeTokenAndLogout().catch(() => {
// Just navigate to home page as fallback
this.router.navigate(['/']);
});
// Force clear tokens locally
localStorage.clear(); // Clear all local storage as a last resort
sessionStorage.clear();
this.router.navigate(['/']);
}
}