// Beyond SMS

OTP alternatives: passkeys, TOTP, and magic links β€” when to drop SMS

SMS OTP is convenient but it is neither the cheapest nor the most secure way to verify a user. Passkeys, TOTP authenticator apps, and magic links each beat SMS for certain flows. This guide compares them honestly so you can decide when to add them alongside SMS and when to move off SMS entirely.

The problem with SMS-only

SMS OTP has real weaknesses: it is vulnerable to SIM-swap attacks and interception, it depends on best-effort carrier delivery, and it costs money on every send that grows with scale. For low-risk convenience it is fine; for high-value accounts or high volume, leaning on it exclusively is a liability.

The modern answer is not "never use SMS" but "use the right factor per flow," often with SMS as a fallback rather than the primary.

  • Security: SIM swap and interception can defeat SMS OTP.
  • Reliability: delivery is best-effort and varies by country.
  • Cost: every send is billable and scales with your users.

Passkeys (WebAuthn / FIDO2)

Passkeys replace passwords and OTPs with a cryptographic key pair bound to the user's device and unlocked by biometrics or a PIN. They are phishing-resistant by design, cost nothing per authentication, and are now supported across major browsers and platforms with cloud sync. For new consumer products, passkeys are increasingly the recommended primary factor.

  • Strong: phishing-resistant, no per-use cost, excellent UX after setup.
  • Weaker: account recovery and cross-ecosystem sync need careful design.
  • Use as the primary factor for new flows, with a fallback for recovery.

TOTP authenticator apps

TOTP (time-based one-time passwords) generate a rotating 6-digit code in an app like Google Authenticator or Authy from a shared secret. There is no delivery dependency and no per-use cost, and it is far more resistant to interception than SMS. The trade-off is setup friction and recovery when a device is lost.

  • Strong: no delivery risk, no per-use cost, resists SIM-swap.
  • Weaker: enrollment friction; needs recovery codes for lost devices.
  • Great as a step-up factor for security-conscious users.

Comparing the options

There is no single winner β€” match the factor to the risk and the audience. A common modern pattern is passkeys as primary, TOTP as a step-up, and SMS retained only as a last-resort fallback for users who have nothing else.

MethodSecurityPer-use costBest for
SMS OTPModerate (SIM-swap risk)Per messageBroad reach, low-risk fallback
PasskeysHigh (phishing-resistant)NonePrimary factor for new products
TOTP appHighNoneSecurity-conscious step-up
Magic linkModerateEmail cost onlyEmail-first, low-risk flows
General guidance β€” weight by your risk profile and user base.

How to migrate without breaking users

Do not rip SMS out overnight. Add a stronger factor as an option, encourage enrollment, and only then demote SMS to fallback. Keep a recovery path for every method so a lost device or channel never locks a user out.

  1. 1

    Add, don't replace

    Introduce passkeys or TOTP as an additional option while keeping SMS working.

  2. 2

    Nudge enrollment

    Prompt users to set up the stronger factor at natural moments, like after a sensitive action.

  3. 3

    Demote SMS to fallback

    Once adoption is healthy, make SMS the recovery/last-resort channel rather than the default.

  4. 4

    Guarantee recovery

    Provide recovery codes or an alternate factor so no single lost device locks anyone out.

Frequently asked questions

Are passkeys better than SMS OTP?+

For security, yes β€” passkeys are phishing-resistant and cost nothing per authentication, whereas SMS OTP is vulnerable to SIM swaps and pays per message. The main trade-offs are account recovery and cross-device sync, so most teams add passkeys as the primary factor while keeping a fallback.

Should I remove SMS entirely?+

Usually not right away. SMS still reaches users who have no authenticator or passkey set up, so it makes a good last-resort fallback. The modern pattern is stronger factors as primary with SMS demoted to recovery, rather than an abrupt removal.

What's the difference between TOTP and SMS OTP?+

TOTP generates a rotating code locally in an authenticator app from a shared secret, so there's no message to deliver and no per-use cost, and it resists SIM-swap attacks. SMS OTP delivers the code over the carrier network, which adds cost and delivery risk but requires no app setup.

Are magic links secure?+

They are as secure as the user's email and the way you handle the link. Magic links remove passwords and are convenient, but they inherit email's phishing surface and struggle when the link opens in a different browser. They suit low-risk, email-first products; add device checks for sensitive actions.

EdgeGigs

Moving beyond SMS to passkeys or TOTP?

A vetted authentication developer on EdgeGigs can implement passkeys, TOTP, or magic links alongside your existing SMS fallback.

Find a developer on EdgeGigs β†’