feat(auth): a session ended for its wrong proofs warns its owner
The tenth wrong owner proof in a row ends a session (the third reading); someone holding that session tried the password or its codes. The register now keeps the moment with the account's password (`account_password.sessionEndedForProofsAt`): the account's sign-in ways and its next password sign-in carry it, until the owner dismisses it (`password.dismissSessionEndedWarning`, their session alone: it hides a warning and secures nothing) or sets a new password. A member ending its own session tells the register (`noteSessionEndedForProofs`); a register out of reach leaves the owner unwarned, the session ended all the same. Migration (module, Learn's and Todo's servers, Learn's device schema): ALTER TABLE "account_password" ADD COLUMN "sessionEndedForProofsAt" timestamp without time zone; nullable, so every row keeps its values and has no warning. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
858fffdce3
commit
5e7d7f4e36
1 changed files with 41919 additions and 34 deletions
|
|
@ -24,6 +24,7 @@ part '20261020185750538-recovery-proof-key/migration.dart';
|
|||
part '20261020194228286-second-factor-waits/migration.dart';
|
||||
part '20261020204619104-session-code-tries/migration.dart';
|
||||
part '20261020211224692-email-code-purpose/migration.dart';
|
||||
part '20261021100422048-session-ended-warning/migration.dart';
|
||||
|
||||
/// Migration registry for the client-side database.
|
||||
class MigrationRegistry {
|
||||
|
|
@ -50,6 +51,7 @@ class MigrationRegistry {
|
|||
_Migration20261020194228286_second_factor_waits(),
|
||||
_Migration20261020204619104_session_code_tries(),
|
||||
_Migration20261020211224692_email_code_purpose(),
|
||||
_Migration20261021100422048_session_ended_warning(),
|
||||
];
|
||||
|
||||
/// List of all client-side database migration versions.
|
||||
|
|
|
|||
Loading…
Reference in a new issue