medium complexity extracted Authentication & Access Control Confidence: 100%
4
Components
58
Shared
0
User Stories
Yes
Analyzed

Description

This feature enables Face ID and fingerprint authentication for returning users after their initial BankID, Vipps, or email/password login. The biometric prompt replaces the need to re-enter credentials on every app launch, significantly reducing friction for daily users such as peer mentors who log activities multiple times per day. Credentials are stored in the device's secure enclave and never leave the device; biometric authentication simply unlocks the stored session token to resume the authenticated session.

User Flow

Biometric Authentication (Face ID / Fingerprint) user flow
Click to expand

Analysis

Business Value

Peer mentors register activities frequently throughout their workday, making fast and frictionless re-authentication essential to adoption. Requiring full BankID authentication every session would create unacceptable friction and drive users back to paper-based or Word-based workflows. Biometric authentication preserves security (credentials never leave the device's secure enclave) while dramatically lowering the interaction cost of each app session. This is especially important for the target demographic, which includes users with motor and cognitive impairments who benefit from reduced input requirements and touch-based authentication.

Implementation Notes

Implemented using the local_auth Flutter plugin, which wraps iOS LocalAuthentication (Face ID / Touch ID) and Android BiometricPrompt APIs. The Secure Credential Store uses Flutter Secure Storage to persist the refresh token, encrypted at rest using AES-256. On successful biometric verification, the stored refresh token is read and exchanged for a new access token via POST /api/v1/auth/refresh. The Biometric Auth Service handles capability detection (checks if biometrics are enrolled and available), fallback to PIN/password if biometrics fail, and graceful degradation on devices without biometric hardware. Users can disable biometric login from Settings.

Components (62)

User Interface (1)

Service Layer (1)

Data Layer (1)

Infrastructure (1)

Shared Components

These components are reused across multiple features

Infrastructure (20)

User Stories

No user stories have been generated for this feature yet.