Actual Auth UI Examples

Login Form
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
EmailEmail inputYes
PasswordPassword input maskedYes
Remember MeCheckboxNo

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 NameTextYesMin 1 char
Last NameTextYesMin 1 char
EmailEmailYesUnique check on backend
PasswordPasswordYesComplexity enforced
Confirm PasswordPasswordYesMust match
Phone NumberTelDepends on appE.164 format
Terms & ConditionsCheckboxYesMust be checked
Marketing EmailsCheckboxNoOptional 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.

Open Task 02