AnyBot/mobile
AnyBot Dev b23ac40c0b Relay 2FA: TOTP + recovery codes, argon2id, one-page logout (S2)
- login with 2FA on returns a 5-minute challenge, not a session; the session
  comes from /relay/2fa/verify with an authenticator code — or one of eight
  recovery codes, each good once (hash slot emptied)
- /relay/2fa/enroll hands out the secret (QR) + codes once; enabling completes
  only when a real code proves the app has the secret; disable proves the code
- /relay/sessions/logout kicks every device of the account from one page
- password hashes are argon2id (memory-hard, OWASP parameters); stored PBKDF2
  hashes still sign in — no forced reset, upgrade on next password change
- TOTP is RFC 6238 (vectors pinned in tests); mobile page prompts for the
  second step; protocol.md documents the endpoints
- fixes a double-lock in /relay/me found by the flow test (handlers hold one
  data guard: read through it)
2026-11-09 17:52:42 +08:00
..
icon-180.png One AnyBot icon everywhere; the phone page fills the screen and shows the app's bot faces 2026-11-05 19:20:29 +08:00
icon-192.png One AnyBot icon everywhere; the phone page fills the screen and shows the app's bot faces 2026-11-05 19:20:29 +08:00
icon-512.png One AnyBot icon everywhere; the phone page fills the screen and shows the app's bot faces 2026-11-05 19:20:29 +08:00
icon.svg One AnyBot icon everywhere; the phone page fills the screen and shows the app's bot faces 2026-11-05 19:20:29 +08:00
index.html Relay 2FA: TOTP + recovery codes, argon2id, one-page logout (S2) 2026-11-09 17:52:42 +08:00
novnc.js People watch and help on the bots' computer through VNC (noVNC), carried by the account server 2026-11-05 23:05:44 +08:00
screen.html People watch and help on the bots' computer through VNC (noVNC), carried by the account server 2026-11-05 23:05:44 +08:00