OTP Login Sequence Diagram
Sequence diagram of phone number login with a one-time password: OTP generation, SMS delivery, verification and issuing a session token.
How it flows
- User → Server: POST /auth/request-otp (phone number)
- Server → Server: Generate OTP & set expiry
- Server → Database: Store OTP + expiry timestamp for phone number
- Database → Server: OTP record saved
- Server → SMS Gateway: Send OTP SMS to phone number
- SMS Gateway → User: SMS: Your OTP is XXXXXX
- Server → User: 200 OK (OTP sent)
- User → Server: POST /auth/verify-otp (phone number + OTP)
- Server → Database: Fetch stored OTP & expiry for phone number
- Database → Server: Return OTP record
- Server → Server: Verify OTP match & check not expired
- Server → Server: Generate signed JWT session token
- Server → Database: Invalidate / delete used OTP
- Database → Server: OTP invalidated
- Server → User: 200 OK (JWT session token)
Components
User · Server · Database · SMS Gateway