Identity Verification Hub - Story
Project Story

Challenge

Create a biometric verification experience that feels immediate to the user while securely handling image uploads, asynchronous verification, and state tracking in a cloud-native architecture.

Approach

Use a two-stage upload flow with short-lived signed session tokens, then run face comparison asynchronously in a worker to keep API response times fast and predictable.

Security

Guardrails include API throttling, WAF rate limiting, strict CORS, token validation, and managed secrets. Legacy static token fallback remains optional and off by default.

Outcome

Users see clear verification states (pending, verified, rejected, timeout), while the backend maintains durable status history and similarity scores for downstream audit and automation.

Runtime Sequence
1. Init Session
Frontend requests INIT_SESSION and receives a short-lived session token bound to user_id.
2. Upload Assets
ID and selfie are sent as base64 payloads to POST /upload and persisted to S3.
3. Async Verify
Upload service invokes verification worker, which runs Rekognition CompareFaces and writes status + similarity to DynamoDB.
4. Poll Status
Frontend polls STATUS until terminal state. UI then updates bars and operator log with final result.