Passkeys vs TOTP vs Email Codes for WHMCS Staff: Which Should You Use?

Passkeys vs TOTP vs Email Codes for WHMCS Staff: Which Should You Use?

Every WHMCS staff login needs a second check after the password. That part’s settled. What’s left to decide is which check: a passkey, a 6-digit code from an authenticator app (TOTP), or a code sent by email. They aren’t equal. One of them stops phishing outright, one of them is a solid everyday choice, and one of them is only as safe as the mailbox behind it.

This guide compares the three for WHMCS staff accounts, explains where each one fits, and gives you a simple policy you can copy for your own team. If you want the bigger picture on protecting the admin area first, start with our pillar guide, how to harden your WHMCS admin area.

Note: this is for self-hosted WHMCS. You bring your own WHMCS licence. WHMCS and ShoSecureAuth aren’t included with ShoHost reseller, master, alpha or lifetime hosting plans.

How passkeys, TOTP and email codes work at a WHMCS login

All three add something on top of the password, but they prove different things.

MethodWhat your staff member doesWhat it proves
PasskeyUses a fingerprint or face unlock, or taps a security key, when the browser asksThey hold a private key that only works for your real domain
Authenticator app (TOTP)Opens an app and types the 6-digit code shown (it changes every 30 seconds)They have the phone or app that holds the shared secret
Email codeOpens their inbox and types the code that arrivedThey can read that mailbox right now

WHMCS itself ships with Time-Based Tokens (the TOTP option), Duo Security and YubiKey under Configuration > System Settings > Two Factor Authentication. The WHMCS docs describe its YubiKey option as a USB device that types a one-time password, so it still works as a code. There’s no passkey sign-in and no email code option in the built-in list.

Phishing resistance: why passkeys beat one-time codes

Here’s the attack that matters most for hosting businesses. A staff member gets a convincing email about an urgent invoice dispute, clicks through to a page that looks exactly like your WHMCS login, and types their password and their 6-digit code. The fake page passes both to your real login straight away. The attacker is in before the code expires.

This isn’t a theory. OWASP describes ready-made phishing kits that sit between the user and the real site and relay logins in real time. The US standards body NIST says in SP 800-63B that authenticators which involve typing in a code, including OTP apps and codes sent to a device, are not phishing-resistant, because the code isn’t tied to the session it’s typed into. The same document names WebAuthn, the standard behind passkeys, as phishing-resistant: the browser only uses a passkey with the domain it was created for.

So a look-alike domain gets nothing it can replay. Your staff member doesn’t need to spot the fake. The browser simply won’t offer the passkey there.

Fake WHMCS login page relays a typed 6-digit code to the real login, while a passkey sends nothing to a look-alike domain
A typed code can be relayed by a fake login page. A passkey only works on your real domain.
  • Why a typed code can be stolen: staff member → fake WHMCS login on a look-alike domain → password + 6-digit code → relayed to the real login → attacker signed in.
  • Why a passkey can’t be: staff member → fake page on a look-alike domain → browser has no passkey for this domain → nothing sent. Passkeys only work on your real domain.

Email codes for WHMCS staff: easy, but tied to the mailbox

Email codes feel friendly because everyone already has email. For clients that convenience counts for a lot. For staff with admin rights, it’s the weakest of the three.

  • One breach, two keys. If someone gets into a staff mailbox, they can usually reset the WHMCS password and read the login code. That’s the stolen-mailbox path from our pillar guide.
  • Shared inboxes. If a code lands in a shared or forwarded mailbox such as support@, everyone who reads that mailbox can use it.
  • Standards are clear. NIST SP 800-63B says email shall not be used for out-of-band authentication, because a mailbox is often protected only by a password and mail can be intercepted or rerouted. OWASP adds that email codes are susceptible to phishing and give no protection once the mailbox is compromised.

Email codes still have a place. They’re a reasonable extra factor for clients who won’t install an app, and a sensible backup channel. They shouldn’t be the only second factor on a Full Administrator account.

Authenticator apps (TOTP) for WHMCS admins

TOTP is the method most WHMCS owners already know. The WHMCS docs describe it as a 6-digit code that regenerates every 30 seconds, generated by a device that holds your secret key, and it’s the option WHMCS recommends and turns on by default in its own 2FA settings.

GoodWatch out for
The code is made on the device, so there’s no SMS or email to wait for.Codes can be phished and relayed in real time. OWASP lists TOTP as susceptible to phishing.
Widely used. Many staff already have an authenticator app, and any standard TOTP app works.A lost, stolen or flat phone means a recovery process, so backup codes matter.
Built into WHMCS, and also offered by ShoSecureAuth.The server clock has to match the phone. WHMCS docs warn that a time mismatch makes codes fail.

For most support and billing staff, TOTP is a big step up from a password alone. It just isn’t the strongest option you have.

Passkeys for WHMCS staff logins

A passkey replaces the typed secret with a key pair stored on the person’s phone, laptop or security key. Signing in is one prompt: the same fingerprint, face unlock or device PIN they use to unlock the device, or a tap on a security key. The FIDO Alliance notes passkeys can be synced across a person’s devices or kept on one device, such as a security key. Nothing is typed, so there’s no code for a fake page to collect.

Passkeys need HTTPS on the live site. OWASP recommends giving people more than one way back in, so have each person register a second passkey (say, a laptop and a phone) and keep backup codes. In ShoSecureAuth, set Maximum passkeys per user to 2 or more for that; the setting’s own hint says the default is 1. ShoSecureAuth sets the WebAuthn relying party ID to your root domain, which means a passkey works across that domain’s subdomains.

Passkeys vs TOTP vs email codes: side-by-side

PasskeyAuthenticator app (TOTP)Email code
Stops phishing pagesYesNo, codes can be relayedNo, codes can be relayed
Survives a mailbox breachYesYesNo
Speed at loginOne tap or fingerprintOpen app, type 6 digitsWait for mail, type code
Needs a phoneNo, a laptop or security key worksUsuallyNo
In WHMCS without an addonNoYes (Time-Based Tokens)No
In ShoSecureAuthYes, clients and adminsYesYes, plus WhatsApp codes

Which login method should WHMCS staff use?

Use the strongest option for the accounts that can do the most damage, and keep a backup for everyone. A policy that works for most small hosting teams:

AccountMain methodBackup
Owner and Full AdministratorsPasskey on two devicesAuthenticator app plus saved backup codes
Billing and support staffPasskey, or an authenticator appBackup codes
Freelancers and short-term accessAuthenticator app at minimumBackup codes, and remove the account when the job ends
ClientsPasskey if they want itEmail or WhatsApp code after the password

Say you run a hosting business in Coimbatore with yourself, two support staff and a part-time billing assistant. You’d put passkeys on your own account and both support logins in week one, give the billing assistant an authenticator app plus backup codes, and offer passkeys to clients later as an option rather than forcing them.

Which WHMCS login method for whom: passkeys for admins, passkey or TOTP for staff, email or WhatsApp codes for clients
A simple rule of thumb: the more an account can change, the stronger its login should be.

Whatever you choose, give each person their own login with a role that fits their job. Our guide to WHMCS staff accounts and admin roles covers that side.

ShoSecureAuth: passkeys, TOTP, email and WhatsApp codes in one WHMCS addon

ShoSecureAuth is our in-house WHMCS addon, and it gives you all of the methods above in one place, so you don’t have to pick one for everybody. Clients and administrators can sign in with a passkey, and you can ask for a one-time code after the password when you want one.

  • Passkey login with a device biometric or a security key, for clients and admins. No password on that path.
  • OTP after password by email (WHMCS system mail or SMTP set only for these codes), WhatsApp (the ShoHost WhatsApp addon or your own MPWA gateway), a Google Authenticator-style app, or backup codes.
  • Separate client and admin policy: passkey login, passkey management and OTP after password are separate switches for each area, and code channels are split into Administrator 2FA and Client 2FA.
  • Admin step-up: a registered admin passkey can confirm sensitive admin actions instead of typing the password again.
  • Recovery that doesn’t need you: backup codes, up to 5 extra emails and 5 extra WhatsApp numbers per user, and trusted devices users can revoke themselves.
ShoSecureAuth feature grid listing passkey login, email OTP, WhatsApp OTP, authenticator app and backup codes
Every login method in this guide, from one addon.

Signing in with a passkey is a single button on the WHMCS login page, and clients manage their own passkeys, authenticator app and backup codes from their Security page.

WHMCS client login page with email and password fields and a Passkey button under Or sign in with
The passkey button sits right under the normal login form.
Client area Security Settings page with a Manage Passkeys tab, a Register Passkey button and a list of saved passkeys
Clients register and remove their own passkeys, so they don’t need to ask your team.

Rolling out passkeys during the 15-day trial

The free trial gives you enough time to move staff over in stages, with nobody locked out on day one:

WhenWhat to do
Days 1 to 3Turn on passkeys and OTP after password for the administrator area only, with Maximum passkeys per user set to 2 or more. Each admin registers two passkeys and saves backup codes.
Days 4 to 7Watch the activity log for failed logins and sort out any device problems while it’s only your team.
Days 8 to 12Offer passkeys to clients and choose their code channels, such as email and WhatsApp.
Days 13 to 15Decide whether to keep it. If you buy, there’s a 7-day refund on eligible module orders.
15-day ShoSecureAuth trial timeline for WHMCS passkeys: admins first, check the activity log, clients next, then decide
Admins first, clients second: a calm way to switch on passkeys.

Tip: keep one admin session open in another browser while you switch on admin OTP, so you can roll back a setting if something doesn’t behave.

ShoSecureAuth trial, refund and support

Details
Free trial15 days, started from the addon’s License tab
Refund7-day refund on eligible module orders, see our system policies
LicenceOne domain-bound WHMCS install, with updates through the module
WHMCS licenceBought separately. Third-party licences, including WHMCS, are non-refundable
HelpWhatsApp support on +91 94880 91432

You can pay in INR on the ShoSecureAuth order page. Current prices are shown there and on the product page.

ShoHost store configure page for ShoSecureAuth with INR selected and the billing cycle options
Pick INR and a billing cycle on the order page.

Passkeys vs TOTP vs email codes: FAQs

Are passkeys safer than an authenticator app for WHMCS admins?

Yes, against phishing. NIST SP 800-63B treats one-time codes you type in as not phishing-resistant, because a fake page can pass them on. A passkey is bound to your real domain, so a look-alike page gets nothing it can reuse.

Should WHMCS staff use email codes for two-factor login?

Only as a backup. Whoever gets into the mailbox gets the code, and often the password reset link too. NIST SP 800-63B says email should not be used for out-of-band authentication.

Does WHMCS support passkeys without an addon?

No. The built-in Two-Factor Authentication page offers Time-Based Tokens, Duo Security and YubiKey. Passkey sign-in for admins and clients comes from an addon such as ShoSecureAuth.

What happens if a staff member loses the phone with their passkey or authenticator app?

Plan for it before it happens. Give every admin backup codes and a second method. ShoSecureAuth also lets staff remove a passkey or reset 2FA for an account, and users can revoke trusted devices themselves.

Can I use passkeys for admins and email codes for clients?

Yes. In ShoSecureAuth, passkey login, passkey management and OTP after password are separate switches for the client area and the admin area, and the code channels are chosen separately for each.

Related WHMCS security guides

Sources: NIST SP 800-63B, OWASP, the FIDO Alliance, WHMCS 9.0 documentation and the ShoSecureAuth product page, checked 19 October 2026.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *