Back to compare picker

Two-factor authentication vs Sign in vs Login vs Password reset vs Password input

Use two-factor authentication for the additional-factor challenge, recovery, trusted-device, and factor-management states; use sign in for the broader returning-access journey, login for submitted credential outcomes, and password reset for replacing a forgotten password through a recovery artifact.

Learn the decision

Match the interaction to the person's task

Use two-factor authentication for the additional-factor challenge, recovery, trusted-device, and factor-management states; use sign in for the broader returning-access journey, login for submitted credential outcomes, and password reset for replacing a forgotten password through a recovery artifact.

Two-factor authentication

Use it when: A sign-in, new device, risk signal, or sensitive action requires proof beyond the primary credential.

Make this state clear: Initial additional-factor challenge with factor name, destination or protected action, and primary account context.

Observe the result: A user lost the phone, uses a single-use recovery code, receives a notification, and is prompted to add a replacement factor after reauthentication.

Study the full pattern →

Sign in

Use it when: Users need to access an existing account or protected destination.

Make this state clear: Initial sign-in state with service or destination context.

Observe the result: A user opens a private document link, signs in with a saved passkey, and lands back on the same document with focus near the access confirmation.

Study the full pattern →

Login

Use it when: Users have submitted credentials or authenticator output and need a safe verification result.

Make this state clear: Ready-to-submit login state with chosen identifier and authenticator route.

Observe the result: A user mistypes the password twice, sees remaining attempts and a neutral account-details error, uses a passkey instead, and reaches the intended workspace with retry warnings cleared.

Study the full pattern →

Password reset

Use it when: Users need to recover an account because the existing password is forgotten, suspected compromised, or unusable.

Make this state clear: Request state with identifier input, neutral copy, rate-limit protection, and a route back to sign in.

Observe the result: A user enters their email, sees a neutral delivery confirmation, opens a time-limited link, creates a new password, chooses to sign out other sessions, and receives a reset notification.

Study the full pattern →

Password input

Use it when: The user needs to enter an existing password, passphrase, or PIN-like memorized secret.

Make this state clear: Initial hidden state with label, autocomplete purpose, spellcheck off, autocapitalization off, and show control.

Observe the result: The person reaches a clear outcome.

Study the full pattern →

Practice the judgment: Imagine this situation: The app lets users skip the second factor by changing the URL, using Back, opening another tab, or calling the protected endpoint directly. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Two-factor authenticationSign inLoginPassword resetPassword input
UI or UX UI + UX - Additional-factor challenge and recovery flowUI + UX - Returning-account authentication and session start flowUI + UX - Credential-verification attempt lifecycle and login outcome handlingUI + UX - Account recovery and reset-token lifecycleUI + UX - Authentication secret entry control
UI guidance Render two-factor authentication as a focused additional-factor challenge with factor name, destination or protected action, delivery hint, code or approval input, resend timing, alternate factor, recovery-code route, trusted-device choice, and safe failure handling.Render sign in as a focused authentication surface with a clear service or destination name, account identifier field, current-password or passkey path, password-manager-friendly attributes, recovery routes, create-account route, and neutral error area.Render login as the outcome-sensitive credential verification state: pending verification, neutral failure, remaining attempts or wait time when policy allows, throttling or lockout state, unlock or recovery route, and successful session-created confirmation.Render password reset as a recovery journey with a neutral request form, reset delivery confirmation, token or code validation, expired and already-used link states, new-password handoff, session cleanup choices, and post-reset notification.Render password entry as a labelled password field that is hidden by default, uses the correct autocomplete purpose, offers a clear show and hide control, disables spellcheck and automatic capitalization, and keeps helper and error text connected to the input.
UX guidance Use two-factor authentication when the product needs stronger proof after a password, passkey, SSO return, risk signal, new device, or sensitive action.Use sign in when users are returning to an existing account, protected resource, invitation, draft, checkout, or workspace and need to prove control of an authenticator.Use login when users have already chosen an authentication route and submitted credentials or an authenticator output, and the product must explain the verification result safely.Help legitimate users recover by making the next step visible, preserving privacy with neutral copy, rate-limiting repeated requests, handling expired links cleanly, and explaining what happens to active sessions after the reset.Use password input when a user enters an existing secret to sign in, reauthenticate, unlock a protected action, or confirm account ownership.
Good UI A code screen says Enter the 6-digit code from your authenticator app to continue to payroll settings, uses autocomplete one-time-code, shows Try another method, and explains recovery codes.A sign-in page names the workspace, shows email or username, password with current-password autocomplete, passkey option, forgot-password link, create-account link, and a destination reminder such as Continue to Q2 budget review.After a failed login, the page keeps the email address, clears the password, shows Check your details and try again, gives 2 attempts remaining, and keeps forgot password and use passkey routes available.A forgot-password page asks for email, then always shows If an account uses this email, we sent reset instructions, with resend timing and a support route.A reauthentication dialog asks for Current password, lets the user show it temporarily, accepts a pasted manager value, and clears the field after an incorrect attempt.
Bad UI Attackers bypass the prompt through a direct endpoint, cached page, or remembered browser weakness.A failed sign-in says This email exists but the password is wrong, exposing account status.Account enumeration through differentiated login outcomes.Account enumeration through reset request copy, timing, status codes, resend behavior, or support routes.A login form uses a normal text field named Password and leaves the secret visible on screen.
Good UX A user lost the phone, uses a single-use recovery code, receives a notification, and is prompted to add a replacement factor after reauthentication.A user opens a private document link, signs in with a saved passkey, and lands back on the same document with focus near the access confirmation.A user mistypes the password twice, sees remaining attempts and a neutral account-details error, uses a passkey instead, and reaches the intended workspace with retry warnings cleared.A user enters their email, sees a neutral delivery confirmation, opens a time-limited link, creates a new password, chooses to sign out other sessions, and receives a reset notification.The person reaches the intended result with clear feedback.
Bad UX Attackers bypass the prompt through a direct endpoint, cached page, or remembered browser weakness.A user signs in from checkout and lands on a generic account dashboard, losing the cart and payment context.Account enumeration through differentiated login outcomes.Account enumeration through reset request copy, timing, status codes, resend behavior, or support routes.A failed login page says the password is wrong, confirming that the username exists.
Best fit A sign-in, new device, risk signal, or sensitive action requires proof beyond the primary credential.Users need to access an existing account or protected destination.Users have submitted credentials or authenticator output and need a safe verification result.Users need to recover an account because the existing password is forgotten, suspected compromised, or unusable.The user needs to enter an existing password, passphrase, or PIN-like memorized secret.
Avoid when The user is only choosing an authentication method on the initial sign-in page.The user is creating a new account, choosing a new password, or verifying a new contact method.The problem is choosing an authentication method or explaining why authentication is required before credentials are submitted.The user is merely signing in with a known current password or passkey.The task is choosing a new password and needs creation-specific guidance, strength feedback, and blocklist rejection.
Required state Initial additional-factor challenge with factor name, destination or protected action, and primary account context.Initial sign-in state with service or destination context.Ready-to-submit login state with chosen identifier and authenticator route.Request state with identifier input, neutral copy, rate-limit protection, and a route back to sign in.Initial hidden state with label, autocomplete purpose, spellcheck off, autocapitalization off, and show control.
Accessibility burden Support paste into one field for codes and avoid multi-field inputs that trap focus or break screen-reader reading order.Use explicit labels for identifier, password, passkey, SSO, and one-time-code controls rather than placeholder-only prompts.Keep retry, recovery, unlock, support, and accessible challenge alternatives reachable by keyboard.Use a clear page heading such as Reset your password and avoid relying on placeholder text for the account identifier.Use a visible label that names the password purpose, such as Password or Current password.
Common misuse Blocking paste or autocomplete for one-time codes.Using account-specific error messages that reveal whether an identifier exists.Returning different messages for unknown account, wrong password, disabled account, or locked account.Confirming whether an email, username, phone number, or account exists.Using type text for passwords.

Two-factor authentication

UI or UX
UI + UX - Additional-factor challenge and recovery flow
UI guidance
Render two-factor authentication as a focused additional-factor challenge with factor name, destination or protected action, delivery hint, code or approval input, resend timing, alternate factor, recovery-code route, trusted-device choice, and safe failure handling.
UX guidance
Use two-factor authentication when the product needs stronger proof after a password, passkey, SSO return, risk signal, new device, or sensitive action.
Good UI
A code screen says Enter the 6-digit code from your authenticator app to continue to payroll settings, uses autocomplete one-time-code, shows Try another method, and explains recovery codes.
Bad UI
Attackers bypass the prompt through a direct endpoint, cached page, or remembered browser weakness.
Good UX
A user lost the phone, uses a single-use recovery code, receives a notification, and is prompted to add a replacement factor after reauthentication.
Bad UX
Attackers bypass the prompt through a direct endpoint, cached page, or remembered browser weakness.
Best fit
A sign-in, new device, risk signal, or sensitive action requires proof beyond the primary credential.
Avoid when
The user is only choosing an authentication method on the initial sign-in page.
Required state
Initial additional-factor challenge with factor name, destination or protected action, and primary account context.
Accessibility burden
Support paste into one field for codes and avoid multi-field inputs that trap focus or break screen-reader reading order.
Common misuse
Blocking paste or autocomplete for one-time codes.

Sign in

UI or UX
UI + UX - Returning-account authentication and session start flow
UI guidance
Render sign in as a focused authentication surface with a clear service or destination name, account identifier field, current-password or passkey path, password-manager-friendly attributes, recovery routes, create-account route, and neutral error area.
UX guidance
Use sign in when users are returning to an existing account, protected resource, invitation, draft, checkout, or workspace and need to prove control of an authenticator.
Good UI
A sign-in page names the workspace, shows email or username, password with current-password autocomplete, passkey option, forgot-password link, create-account link, and a destination reminder such as Continue to Q2 budget review.
Bad UI
A failed sign-in says This email exists but the password is wrong, exposing account status.
Good UX
A user opens a private document link, signs in with a saved passkey, and lands back on the same document with focus near the access confirmation.
Bad UX
A user signs in from checkout and lands on a generic account dashboard, losing the cart and payment context.
Best fit
Users need to access an existing account or protected destination.
Avoid when
The user is creating a new account, choosing a new password, or verifying a new contact method.
Required state
Initial sign-in state with service or destination context.
Accessibility burden
Use explicit labels for identifier, password, passkey, SSO, and one-time-code controls rather than placeholder-only prompts.
Common misuse
Using account-specific error messages that reveal whether an identifier exists.

Login

UI or UX
UI + UX - Credential-verification attempt lifecycle and login outcome handling
UI guidance
Render login as the outcome-sensitive credential verification state: pending verification, neutral failure, remaining attempts or wait time when policy allows, throttling or lockout state, unlock or recovery route, and successful session-created confirmation.
UX guidance
Use login when users have already chosen an authentication route and submitted credentials or an authenticator output, and the product must explain the verification result safely.
Good UI
After a failed login, the page keeps the email address, clears the password, shows Check your details and try again, gives 2 attempts remaining, and keeps forgot password and use passkey routes available.
Bad UI
Account enumeration through differentiated login outcomes.
Good UX
A user mistypes the password twice, sees remaining attempts and a neutral account-details error, uses a passkey instead, and reaches the intended workspace with retry warnings cleared.
Bad UX
Account enumeration through differentiated login outcomes.
Best fit
Users have submitted credentials or authenticator output and need a safe verification result.
Avoid when
The problem is choosing an authentication method or explaining why authentication is required before credentials are submitted.
Required state
Ready-to-submit login state with chosen identifier and authenticator route.
Accessibility burden
Keep retry, recovery, unlock, support, and accessible challenge alternatives reachable by keyboard.
Common misuse
Returning different messages for unknown account, wrong password, disabled account, or locked account.

Password reset

UI or UX
UI + UX - Account recovery and reset-token lifecycle
UI guidance
Render password reset as a recovery journey with a neutral request form, reset delivery confirmation, token or code validation, expired and already-used link states, new-password handoff, session cleanup choices, and post-reset notification.
UX guidance
Help legitimate users recover by making the next step visible, preserving privacy with neutral copy, rate-limiting repeated requests, handling expired links cleanly, and explaining what happens to active sessions after the reset.
Good UI
A forgot-password page asks for email, then always shows If an account uses this email, we sent reset instructions, with resend timing and a support route.
Bad UI
Account enumeration through reset request copy, timing, status codes, resend behavior, or support routes.
Good UX
A user enters their email, sees a neutral delivery confirmation, opens a time-limited link, creates a new password, chooses to sign out other sessions, and receives a reset notification.
Bad UX
Account enumeration through reset request copy, timing, status codes, resend behavior, or support routes.
Best fit
Users need to recover an account because the existing password is forgotten, suspected compromised, or unusable.
Avoid when
The user is merely signing in with a known current password or passkey.
Required state
Request state with identifier input, neutral copy, rate-limit protection, and a route back to sign in.
Accessibility burden
Use a clear page heading such as Reset your password and avoid relying on placeholder text for the account identifier.
Common misuse
Confirming whether an email, username, phone number, or account exists.

Password input

UI or UX
UI + UX - Authentication secret entry control
UI guidance
Render password entry as a labelled password field that is hidden by default, uses the correct autocomplete purpose, offers a clear show and hide control, disables spellcheck and automatic capitalization, and keeps helper and error text connected to the input.
UX guidance
Use password input when a user enters an existing secret to sign in, reauthenticate, unlock a protected action, or confirm account ownership.
Good UI
A reauthentication dialog asks for Current password, lets the user show it temporarily, accepts a pasted manager value, and clears the field after an incorrect attempt.
Bad UI
A login form uses a normal text field named Password and leaves the secret visible on screen.
Good UX
The person reaches the intended result with clear feedback.
Bad UX
A failed login page says the password is wrong, confirming that the username exists.
Best fit
The user needs to enter an existing password, passphrase, or PIN-like memorized secret.
Avoid when
The task is choosing a new password and needs creation-specific guidance, strength feedback, and blocklist rejection.
Required state
Initial hidden state with label, autocomplete purpose, spellcheck off, autocapitalization off, and show control.
Accessibility burden
Use a visible label that names the password purpose, such as Password or Current password.
Common misuse
Using type text for passwords.
Decision rules
  • Choose two-factor authentication when a user has passed or started a primary authentication step and must prove possession, inherence, or device control through a second factor before access or a sensitive action continues.
  • Choose sign in when the design problem is the whole returning-access entry route: destination context, identifier entry, password, passkey, SSO, recovery links, and return-to-task behavior.
  • Choose login when the design problem is the outcome of a submitted credential attempt: verifying, neutral failure, retry, throttling, lockout, unlock, and session creation.
  • Choose password reset when the user cannot authenticate with the existing password and needs a recovery request, reset artifact, new-password handoff, and post-reset cleanup.
  • Choose password input only for the reusable secret field; a second-factor code, push prompt, passkey assertion, recovery code, or trusted-device decision should not be treated as ordinary password entry.
  • A two-factor challenge should name the factor type, destination or protected action, delivery channel hint, resend or retry policy, alternative factor, recovery-code path, and trusted-device option when policy allows.
  • A two-factor recovery path should avoid account takeover shortcuts: recovery codes are single-use, factor changes require reauthentication or existing factor proof, and support escalation uses stronger identity verification.
  • A trusted-device or remember-browser choice belongs to two-factor authentication when it changes future challenge frequency, and it should be scoped, revocable, and explained before the user opts in.
Inspect live examples
Failure modes
  • A code prompt appears with no destination, no factor label, no resend timing, and no alternative route.
  • The app lets users skip the second factor by changing the URL, using Back, opening another tab, or calling the protected endpoint directly.
  • Recovery codes can be reused, are too short, are not rate-limited, or are never shown during setup.
  • A trusted-device checkbox silently suppresses future challenges on shared computers.
  • Changing the enrolled phone or authenticator app only requires the account password after a suspected compromise.

Saved items