Try `user@example.com` with `SecretPass1!`, `suspended@example.com`, or `locked@example.com`.
or continue with
OAuth buttons should show provider-specific loading and fallback messages.
Signup Form
Strength: Strong
Try `existing@example.com` to see the duplicate-email state.
Forgot Password
Check your inbox
If an account exists with that email, you'll receive a password reset link shortly.
Please wait 60s before requesting another email.
Reset Password
This reset link is invalid or has expired.
Request a new one to continue.
Strength: Strong
Email Verification
Check your email
We sent a verification link to john.smith@example.com.
Resend available now.
Social Login States
Social sign-in
Google succeeds, Apple cancels, GitHub simulates a provider error.
1. Login Form
Fields
Field
Type
Required
Email
Email input
Yes
Password
Password input masked
Yes
Remember Me
Checkbox
No
Validation Rules
Error Messages
Empty email: "Email is required."
Invalid email format: "Enter a valid email address."
Empty password: "Password is required."
Wrong email or password: "Incorrect email or password."
Account not found: "Incorrect email or password."
Account disabled/locked: "Your account has been suspended. Contact support."
Too many failed attempts: "Too many failed attempts. Try again in X minutes."
Network/API error: "Something went wrong. Please try again."
Security Rule
Never reveal whether the email exists. Use the same message for wrong password and account not found.
States
UI Requirements
2. Signup / Registration Form
Fields
Field
Type
Required
Notes
First Name
Text
Yes
Min 1 char
Last Name
Text
Yes
Min 1 char
Email
Email
Yes
Unique check on backend
Password
Password
Yes
Complexity enforced
Confirm Password
Password
Yes
Must match
Phone Number
Tel
Depends on app
E.164 format
Terms & Conditions
Checkbox
Yes
Must be checked
Marketing Emails
Checkbox
No
Optional opt-in
Validation Rules
Password Strength Indicator
Weak: Less than 8 chars OR only one character type
Fair: 8+ chars, 2 character types
Strong: 8+ chars, 3+ character types
Show strength as a progress bar or label. Do NOT block submission with a custom strength rating.
Only enforce the rules in the validation list above.
Error Messages
Empty first name: "First name is required."
Empty last name: "Last name is required."
Empty email: "Email is required."
Invalid email: "Enter a valid email address."
Email already registered: "An account with this email already exists. Log in instead?"
Weak password: "Password must be at least 8 characters with uppercase, lowercase, number, and special character."
Passwords don't match: "Passwords do not match."
Terms not checked: "You must accept the Terms & Conditions to continue."
API error: "Something went wrong. Please try again."
States
UI Requirements
3. Forgot Password Flow
Steps
1. User clicks "Forgot password?" on login page
2. User is shown a single email input field
3. User submits email
4. Backend sends reset email if account exists
5. User sees confirmation message
6. User receives email → clicks link → lands on Reset Password form
Validation Rules
Messages
Valid submission: "If an account exists with that email, you'll receive a password reset link shortly."
Empty email: "Email is required."
Invalid email format: "Enter a valid email address."
API error: "Something went wrong. Please try again."
Already sent recently: "A reset link was already sent. Check your inbox or try again in a few minutes."
States
UI Requirements
4. Reset Password Form
Accessed via: Link in email containing token.
Validation Rules
Error Messages
Token invalid or expired: "This reset link is invalid or has expired. Request a new one."
Token already used: "This reset link has already been used. Request a new one."
Empty new password: "New password is required."
Weak password: "Password must be at least 8 characters with uppercase, lowercase, number, and special character."
Passwords don't match: "Passwords do not match."
Same as old password: "Your new password must be different from your previous password."
API error: "Something went wrong. Please try again."
States
UI Requirements
5. Email Verification
When Required
After signup if email verification is required before dashboard access
After changing email address
Flow
1. After signup → show "Check your email" page
2. User clicks link in email
3. Backend validates token
4. User redirected to dashboard or login with success message
States
Messages
Initial page: "We sent a verification link to [email]. Check your inbox."
Token valid: "Email verified successfully."
Token expired: "This verification link has expired. Click below to resend."
Token invalid: "This verification link is invalid. Try requesting a new one."
Resend success: "Verification email resent. Check your inbox."
Resend rate limited: "Please wait before requesting another verification email."
UI Requirements
6. Social / OAuth Login
Common Providers
Google
Apple — required for iOS apps that offer social login
Microsoft
GitHub — developer apps
Standards
Error Handling
OAuth cancelled by user: Return to login page silently or show "Login cancelled"
OAuth provider error: "Could not connect to [Provider]. Try again or use email."
Email already registered: "An account with this email exists. Log in with [original method] instead."
Account disabled: "Your account has been suspended. Contact support."
UI Requirements
7. Session & Token Handling
8. Security Rules
9. UX Standards
Before Marking Done
10. Auth Checklist
Login Form
Signup Form
Forgot Password
Reset Password
Session & Security
Practice Task
Apply what you learned by building the full auth flow:
login, forgot password, and reset password.