A complete Time-based One-Time Password (TOTP) server. To learn and expierment with TOTP internals.
TOTP (RFC 6238) generates 6-digit codes that change every 30 seconds using:
6-digit code = HMAC-SHA1(secret, UnixTime/30)
server runs on :8080
- Signup (Generate TOTP secret)
POST /signup
Body
username: "Username"
Response
{
"username": "testuser",
"otpauth_url": "otpauth://totp/TOTP-Example:testuser?secret=JBSWY3DPEHPK3PXP...",
"secret_b32": "JBSWY3DPEHPK3PXP..."
}
- Verify Code
POST /verify-code
Body
username: "testuser"
code: "483920"
Response
{
"username": "testuser",
"valid": true,
"current": "483920"
}