R3 two-factor in decePub: an authenticator app set up in Settings, its code asked for at sign-in
Build / Build (push) Successful in 1m3s
Build / Build (push) Successful in 1m3s
Completion program R3, with PrivaPub's TOTP routes of the same release. - Settings, the login: TotpEditor turns two-factor sign-in on (the password, then the QR code, the secret and the otpauth:// link, then the app's first code; the ten recovery codes shown once with Copy), shows how many recovery codes are left (warned at three), and turns it off with the password and a code, asked first. - Turning it on, like a password change, ends every other session: AuthService.ContinueSession takes the new JWT and exchanges the persona's token again. - Sign-in: PrivaPub's 428 keeps the name and password and asks for the six digits (DOtp), or a recovery code instead; a wrong code says so; Back returns to the password. - window.copyText (main.js) through AppStatusService.CopyText. - 29 keys in both resx files; CLAUDE.md follows. Verified: dotnet build decePubClient.csproj -c Release (0 errors, no new warnings). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
This commit is contained in:
1 parent
7d4b35f0d7
commit
b731d8c8c0
11 files changed
+692
-25
No files matched your search
@@ -41,6 +41,10 @@ namespace decePubClient;
|
||||
[JsonSerializable(typeof(EmailChangeForm))]
|
||||
[JsonSerializable(typeof(EmailCodeForm))]
|
||||
[JsonSerializable(typeof(PasswordForm))]
|
||||
[JsonSerializable(typeof(TotpCodeForm))]
|
||||
[JsonSerializable(typeof(TotpDisableForm))]
|
||||
[JsonSerializable(typeof(ViewTotpSetup))]
|
||||
[JsonSerializable(typeof(ViewTotpEnabled))]
|
||||
[JsonSerializable(typeof(ViewUserSettings))]
|
||||
// recover/valid takes the code as a JSON string ([FromBody] string) and answers a JSON bool
|
||||
[JsonSerializable(typeof(string))]
|
||||
|
||||
Reference in new issue
Block a user