Authentication microfrontend for verifiable credential-based login via QR code.
Part of EUDIStack — European Digital Identity Infrastructure for Organizations.
The Login MFE is the user-facing authentication interface for the EUDIStack platform. It presents a QR code that wallet holders scan to initiate an OID4VP presentation flow through the Verifier. It supports cross-device login (QR scan from mobile wallet) with real-time SSE notifications for seamless UX.
It is designed to be deployed as a standalone SPA served by any static file server (Nginx, Amplify, CDN).
- QR-based login — Cross-device authentication via wallet QR scan
- Real-time updates — SSE connection for instant login confirmation
- Runtime theming — Tenant-specific branding loaded from
theme.jsonat runtime - i18n — Multi-language support (EN, ES, CA) via
@ngx-translate - Environment injection — Runtime configuration via
env.js(no rebuild per environment)
| Component | Technology |
|---|---|
| Language | TypeScript 5.8 |
| Framework | Angular 19 |
| Tests | Jest 29 |
| i18n | @ngx-translate |
| QR | angularx-qrcode |
| Build | Angular CLI + npm |
- Node.js 22
npm cinpm run buildBuild output is placed in dist/ and can be served by any static file server.
npm testCoverage reports are generated in coverage/app/.
npm startNavigate to http://localhost:4200/.
Runtime configuration is injected via assets/env.js, generated from assets/env.template.js at deploy time.
| Variable | Description | Default |
|---|---|---|
API_BASE_URL |
Verifier backend URL | http://localhost:8082 |
Theming is loaded at runtime from assets/theme.json (colors, logos, favicon, tenant domain).
| Workflow | Trigger | Description |
|---|---|---|
build.yml |
Push / PR to main |
Build, test, Jest coverage summary |
deploy-aws.yml |
Manual | Build and deploy to AWS Amplify |
release.yml |
Manual | Validate and create GitHub Release tag |
src/
├── app/
│ ├── core/
│ │ ├── models/ # Theme model, environment types
│ │ └── services/ # ThemeService, SseService
│ └── features/
│ └── login/ # Login component (QR, countdown, animations)
├── assets/
│ ├── env.template.js # Environment template (envsubst at deploy)
│ ├── i18n/ # Translation files (en.json, es.json, ca.json)
│ └── theme.json # Runtime theming (colors, logos, tenant)
└── environments/ # Angular environment files
See CONTRIBUTING.md for guidelines.
Licensed under the Apache License 2.0.
- Organization: IN2, Ingeniería de la Información
- Email: [email protected]