SMS two-factor authentication for WordPress

Text-message login codes through your own Twilio account: six-digit codes that expire in five minutes, sent only to the user roles you select.

Requires your own Twilio account. Twilio bills message costs directly.

6
digit codes, verified with timing-safe comparison
5 min
code lifetime (expired codes are deleted, not recycled)
Per role
SMS only goes to roles you explicitly allow
Masked
phone numbers are masked in logs

What it does

For teams where authenticator apps are a hard sell, SMS is the second factor people already understand: log in, get a text, type the code. It slots into the same 2FA framework as the free email and app methods.

How it works

Connect your Twilio credentials: account SID, auth token and a sender, which can be a phone number, an alphanumeric sender ID or a Twilio Messaging Service. Codes are six random digits with a five-minute expiry, deleted on success or expiry, and verified with timing-safe comparison. Delivery only happens for user roles you select, and Twilio errors are translated into messages a human can act on.

The shared 2FA rate limiter applies here too: five failed attempts earn a fifteen-minute lockout, so codes cannot be brute-forced.

  • Twilio number, alphanumeric sender ID or Messaging Service SID
  • Role-gated delivery: pick exactly who can use SMS
  • Six digits, five-minute expiry, single use
  • Shared 2FA rate limiting: 5 attempts, 15-minute lockout
  • Send and verify events logged with masked numbers

Honest guidance

SMS is more phishable than authenticator apps or passkeys. SIM-swap attacks are real. Our own ordering: passkeys first, authenticator apps second, SMS where the alternative is no second factor at all. All three live in the same plugin, so upgrading a user later is a settings change.

Documentation

SMS authentication

Twilio setup and role selection.

Read the guide →

Login authentication overview

How all the 2FA methods fit together.

Read the guide →

SMS 2FA questions

What does it cost?

The plugin adds nothing. Twilio bills your account per message at their rates, under your own agreement with them.

Why is nothing sending?

The two usual causes: Twilio credentials incomplete, or no roles selected. SMS delivery is role-gated and no roles are allowed until you choose them.

Is SMS the best second factor?

No. Passkeys and authenticator apps resist phishing better. SMS is the pragmatic option for users who will not adopt an app, and far better than password-only.

Related features

Free

Two-factor authentication

Email codes and authenticator apps: free.

Learn more →
Pro

Passkeys & passwordless

The phishing-resistant upgrade path.

Learn more →
Pro

2FA at scale

Audit logs, bulk resets and trusted devices for teams.

Learn more →

All features →

Secure your site today

Install the free plugin from WordPress.org and set up real protection with the guided setup wizard. Upgrade to Pro whenever you need more.