Complete verification links and prefill login with the verified email #61

Merged
tech merged 2 commits from email-verification-60 into main 2026-10-20 18:00:06 +00:00
Owner

Emailed /verify-email?token=… links previously reached Flutter’s default hash routing and could fall through to login without submitting activation. The web entry point now uses path routing. Transactional activation returns the verified email only after commit; the existing DTO → mapper → service → model → provider path carries it to the success page.

Success stays visible until Continue to login, which prefills an editable email and focuses an empty password. The email stays in transient router state and is excluded from URLs, serialized history and analytics. Invalid/expired/failing confirmations retain recovery actions and disclose no email. Older confirmed responses without the optional email remain compatible.

Validation: changed Dart formatting, Flutter analysis in app and sxchnge_auth, make test-frontend (217 tests), GOFLAGS=-p=1 make test, make lint-backend, and focused transactional activation integration all passed. Initial Docker startup/resolver failures cleared after the user-authorized Docker Desktop restart, without weakening tests. A built demo browser check covers direct URL success, prefilled login and expired recovery. Native Safari automation was unavailable.

Locally integrated into the existing identity-facts-57 stand while preserving its configuration. Fresh stable image resolution and BFF/frontend builds succeeded; the recreated BFF/frontend/Sendico sidecar are healthy, HTTPS assets match the new image, a live synthetic invalid token returns HTTP 400 without email, and Sendico’s authenticated currency/ledger API check passes. Existing Sendico Vault/services were restored after restart. The user’s real token remains unused and unexpired for reopening. No remote main merge has been performed.

Scope, UX/privacy review, validation and deployment evidence: docs/ux/auth-journeys.md, section “Verification links and login handoff”. No security scan requested or run.

Closes #60.

Emailed `/verify-email?token=…` links previously reached Flutter’s default hash routing and could fall through to login without submitting activation. The web entry point now uses path routing. Transactional activation returns the verified email only after commit; the existing DTO → mapper → service → model → provider path carries it to the success page. Success stays visible until **Continue to login**, which prefills an editable email and focuses an empty password. The email stays in transient router state and is excluded from URLs, serialized history and analytics. Invalid/expired/failing confirmations retain recovery actions and disclose no email. Older confirmed responses without the optional email remain compatible. Validation: changed Dart formatting, Flutter analysis in app and sxchnge_auth, `make test-frontend` (217 tests), `GOFLAGS=-p=1 make test`, `make lint-backend`, and focused transactional activation integration all passed. Initial Docker startup/resolver failures cleared after the user-authorized Docker Desktop restart, without weakening tests. A built demo browser check covers direct URL success, prefilled login and expired recovery. Native Safari automation was unavailable. Locally integrated into the existing identity-facts-57 stand while preserving its configuration. Fresh stable image resolution and BFF/frontend builds succeeded; the recreated BFF/frontend/Sendico sidecar are healthy, HTTPS assets match the new image, a live synthetic invalid token returns HTTP 400 without email, and Sendico’s authenticated currency/ledger API check passes. Existing Sendico Vault/services were restored after restart. The user’s real token remains unused and unexpired for reopening. No remote main merge has been performed. Scope, UX/privacy review, validation and deployment evidence: `docs/ux/auth-journeys.md`, section “Verification links and login handoff”. No security scan requested or run. Closes #60.
tech added 1 commit 2026-10-19 12:35:42 +00:00
tech self-assigned this 2026-10-19 12:35:55 +00:00
tech added the frontendbackend labels 2026-10-19 12:35:55 +00:00
tech added 1 commit 2026-10-19 12:54:55 +00:00
tech marked the pull request as ready for review 2026-10-19 12:55:07 +00:00
tech merged commit fa7b75d1b8 into main 2026-10-20 18:00:06 +00:00
tech deleted branch email-verification-60 2026-10-20 18:00:06 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tech/sxchnge#61