CaIon
6f23339906
feat(auth): unify login verification and secure account deletion
...
Treat TOTP and Passkey as alternative enrolled factors across login and
sensitive account operations. Gate every primary login transport before
issuing a session, require WebAuthn user verification, and consume login
challenges atomically with session creation.
Reuse the shared verification UI for login, 2FA management, and account
deletion. Require scoped, single-use deletion proof; recheck the session
inside the deletion transaction and revoke all sessions afterward.
Validation: controller/service/model/middleware tests; real SQLite 3.50.4,
MySQL 8.4.11, and PostgreSQL 16.15 security regressions; frontend tests,
TypeScript, targeted lint, formatting, and production build.
Deploy the frontend and all backend nodes together. No schema changes.
2026-09-06 22:49:02 +08:00
..
2026-09-06 22:48:58 +08:00
2026-09-06 22:49:02 +08:00
2026-09-06 22:49:00 +08:00
2025-06-07 12:26:23 +08:00
2026-07-20 16:48:43 +08:00
2026-07-20 16:48:43 +08:00
2026-09-06 22:49:02 +08:00
2026-09-06 22:48:59 +08:00
2026-09-06 22:48:59 +08:00
2026-09-01 21:53:35 +08:00
2026-09-03 11:28:57 +08:00
2026-07-27 15:56:21 +08:00
2026-06-05 11:30:29 +08:00
2026-07-27 15:56:21 +08:00
2026-09-03 11:28:57 +08:00
2026-08-01 23:19:01 +08:00
2026-08-29 18:51:57 +08:00
2026-08-29 18:51:57 +08:00
2026-07-27 15:56:21 +08:00
2026-08-29 18:51:57 +08:00
2026-07-20 18:11:22 +08:00
2026-07-20 18:11:22 +08:00
2026-07-18 13:04:16 +08:00
2026-06-12 23:45:15 +08:00
2026-06-19 16:07:32 +08:00
2026-07-27 15:56:21 +08:00
2026-07-27 15:56:21 +08:00
2026-07-06 14:52:01 +08:00
2026-09-06 22:49:00 +08:00
2025-10-11 15:30:09 +08:00
2026-07-27 15:56:21 +08:00
2026-07-27 15:56:21 +08:00
2026-07-27 15:56:21 +08:00
2026-07-27 15:56:21 +08:00
2026-08-11 22:03:47 +08:00
2026-08-01 23:19:01 +08:00
2026-08-01 23:19:01 +08:00
2026-07-27 21:41:13 +08:00
2026-08-30 21:18:41 +08:00
2026-07-27 21:41:13 +08:00
2026-07-27 21:41:13 +08:00
2026-05-12 21:53:54 +08:00
2026-04-02 16:40:45 +08:00
2026-09-03 11:28:57 +08:00
2026-09-06 22:49:02 +08:00
2026-09-03 11:28:57 +08:00
2025-10-11 15:30:09 +08:00
2026-09-06 22:48:59 +08:00
2026-07-27 15:56:21 +08:00
2026-07-27 15:56:21 +08:00
2026-07-06 14:52:01 +08:00
2026-07-06 14:52:01 +08:00
2026-09-03 11:28:57 +08:00
2026-09-01 21:53:35 +08:00
2026-06-18 17:56:45 +08:00
2026-09-01 21:53:35 +08:00
2026-09-01 21:53:35 +08:00
2026-07-20 16:48:43 +08:00
2026-07-20 16:48:43 +08:00
2026-09-06 22:49:02 +08:00
2026-07-27 15:56:21 +08:00
2025-08-15 16:54:26 +08:00
2026-02-03 17:40:43 +08:00
2026-06-24 19:16:56 +08:00
2026-06-24 17:16:21 +08:00
2026-06-24 17:16:21 +08:00
2026-08-29 18:51:57 +08:00
2026-08-29 18:51:57 +08:00
2026-08-29 18:51:57 +08:00
2026-08-29 18:51:57 +08:00
2026-09-03 14:37:47 +08:00
2026-09-03 14:37:47 +08:00
2026-09-03 11:28:57 +08:00
2026-09-03 14:37:47 +08:00
2026-08-29 18:51:57 +08:00
2026-09-03 14:37:47 +08:00
2026-09-03 14:37:47 +08:00
2025-10-11 15:30:09 +08:00
2026-09-03 14:37:47 +08:00
2026-09-03 11:28:57 +08:00
2026-08-01 09:35:51 +08:00
2026-08-26 20:57:54 +08:00
2026-09-01 21:53:35 +08:00
2025-12-02 21:38:58 +08:00
2025-12-02 21:34:39 +08:00
2026-09-06 22:48:59 +08:00
2026-07-27 15:56:21 +08:00
2026-07-27 15:56:21 +08:00
2026-09-03 11:28:57 +08:00
2026-05-24 16:37:43 +08:00
2026-07-27 15:56:21 +08:00