Module 11 · Human Verification

One-Time Passwords & Multi-Factor Authentication

This lab shows how OTP and MFA flows work in real applications. Practice a real TOTP authenticator, a controlled Email OTP environment built for deterministic automation, a live real-email delivery experience, and a realistic SMS simulation — then automate the same flows, including expiry, resend, and lockout.

Training environment: TOTP is real RFC 6238 cryptography (otplib), verified by a genuine backend. Email OTP attempts real SMTP delivery when configured and always falls back to a simulated inbox so the lab never breaks. SMS is always simulated — no real carrier is used or charged.

Key Topics

1. TOTP Authenticator

POST /totp/setup POST /totp/verify

A real, RFC 6238 time-based code derived from a shared secret and the current time — the same mechanism Google/Microsoft Authenticator use. Provision a secret, generate the current code, then verify it against a genuine backend.

Test Scenario

SETUP SECRET→ CURRENT TIME→ AUTHENTICATOR→ 6-DIGIT OTP→ VERIFY→ AUTHENTICATED
1

Provision a shared secret

2

Generate & verify a token

The compute button is a convenience so you can try it by hand — in a real test your script calls authenticator.generate(secret).

Current Execution

TOTP

No request executed yet — set up a secret to begin.

Status

Not run yet

Response body

Not run yet

2. Email OTP

Controlled Test Environment
POST /request GET /inbox POST /verify

A deterministic, controlled inbox for automation practice — this section attempts real email delivery when configured, and always keeps a simulated inbox as a guaranteed fallback. Request a code, retrieve it, and verify it against a genuine backend.

Test Scenario

REQUEST→ OTP GENERATED→ EMAIL PROVIDER→ INBOX→ ENTER CODE→ VERIFY→ SESSION TOKEN
1

Request a verification code

Checking delivery availability…
2

Retrieve the code

Open your simulated inbox and copy the 6-digit code — real email retrieval works the same way, just against your actual mailbox.

Inbox is empty — request a code, then fetch.

3

Enter & verify

Current Execution

EMAIL

No request executed yet — send a code to begin.

Status

Not run yet

Response body

Not run yet

3. Real Email OTP — Live Experience

Manual · Real SMTP
POST /request POST /verify

Send a real OTP through this platform's SMTP delivery, then retrieve it by hand from your actual inbox — the closest this lab gets to a live, real-world experience, without automating a personal mailbox.

Test Scenario

REQUEST→ OTP GENERATED→ SMTP PROVIDER→ YOUR REAL INBOX→ YOU READ OTP→ VERIFY

✉ Learning Note — Real Email vs Automation

REAL EMAIL

Application → OTP → SMTP → Your Inbox → You Read OTP

AUTOMATION

Test → OTP → Controlled Inbox → Playwright → Verify

Use Real Email to experience actual delivery. Use the controlled Email OTP section above for automation practice. See Learn More below ↓

1

Send a real verification email

Checking delivery availability…
2

Open your real mailbox

Check the inbox (and Spam folder) for the address above, then copy the 6-digit code. There's no "Fetch inbox" button here on purpose — reading your actual mailbox is the point of this section.

3

Enter & verify

Current Execution

REAL EMAIL

No request executed yet — send a real email to begin.

Status

Not run yet

Response body

Not run yet

4. SMS OTP — Realistic Simulation

Realistic Simulation
POST /request GET /inbox POST /verify

Real SMS delivery normally requires a paid provider (e.g. Twilio). This free lab uses a realistic SMS simulation so you can learn and automate the complete OTP lifecycle at no cost — deterministic, and free, same as Email OTP above.

Deterministic and free — the simulated gateway provides the same reliable OTP source for automation practice as Email OTP above.

Test Scenario

REQUEST→ OTP GENERATED→ SMS GATEWAY (SIMULATED)→ PHONE→ ENTER CODE→ VERIFY→ SESSION TOKEN
1

Send a verification SMS

SIMULATED SMS GATEWAY — Real SMS normally requires a paid provider; this free lab simulates delivery end-to-end so you can learn and automate the complete lifecycle at no cost.
2

Open the simulated message

Open the simulated SMS below and copy the 6-digit code — a real integration would poll your SMS provider's test-number API the same way.

Inbox is empty — request a code, then fetch.

3

Enter & verify

Current Execution

SMS

No request executed yet — send a code to begin.

Status

Not run yet

Response body

Not run yet
↑ Back to top