mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-28 22:42:11 +01:00
0a5b1dac7146580178be2718862dc746d04c5016
fix(auth): prevent duplicate login popup on slow networks during QR code login This commit fixes issue #5367 where the login popup appeared twice on iPad (and other devices) during QR code authentication when using slow network connections (e.g., Fast 4G). Root Cause: During the QR code login flow on slow networks, there was a race condition: 1. User scans QR code and login flow initiates 2. Before SSO redirect completes, HTTP requests (e.g., user storage) fail with 401 3. HTTP error interceptor caught these 401s and triggered another login popup Changes: 1. HTTP Error Interceptor (http-error.interceptor.ts): - Now checks if auth is initialized before handling 401 errors - Only triggers login flow after authentication initialization completes - Prevents duplicate login popups during initial authentication 2. User Storage Provider (user.storage-provider.ts): - Waits for authentication to complete before loading user state - Uses authenticated$ observable to ensure user is logged in - Prevents unnecessary 401 errors during login flow - Added structured logging for better debugging 3. Auth Service (auth.service.ts): - Added authenticated$ observable to track authentication state - Enhanced logging throughout authentication lifecycle - Better state management for authentication status 4. App Module (app.module.ts): - Added comprehensive logging for initialization steps - Store subscription now waits for auth to be initialized - Better error handling and status reporting 5. Storage Tokens (tokens.ts): - USER_SUB token now properly reacts to authentication changes - Uses authenticated$ observable for reactive updates Result: - No more duplicate login popups on slow networks - User storage only loads when user is authenticated - Better logging and debugging capabilities - Cleaner, more reactive authentication flow Related work items: #5367
feat: refactor return feature components; remove deprecated files and implement new search bar input
Hima
This project was generated with Angular CLI version 7.2.1.
Development server
Run ng serve --ssl for a dev server. Navigate to https://localhost:4200/. The app will automatically reload if you change any of the source files.
Code scaffolding
Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.
Build
Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.
Running unit tests
Run ng test to execute the unit tests via Karma.
Running end-to-end tests
Run ng e2e to execute the end-to-end tests via Protractor.
Further help
To get more help on the Angular CLI use ng help or go check out the Angular CLI README.
Description
Languages
TypeScript
86.9%
HTML
8.6%
SCSS
2.4%
JavaScript
1.3%
CSS
0.6%
Other
0.2%