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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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.