1. The future of authentication is passwordless
Passwords are a relic of the past. They’re insecure, easy to forget, and a nightmare for user experience. If you’re still forcing customers or employees to create complex passwords, you’re annoying them and making your security worse.
The future belongs to passwordless authentication. This means passkeys, OAuth, magic links, and multi-factor authentication (MFA). These methods eliminate password fatigue while dramatically improving security. A passkey authenticates users with biometrics or a trusted device. OAuth lets them log in using a service they already trust—Google, Apple, Microsoft. Magic links let them in with one click from their email. MFA ensures an extra layer of protection when necessary.
Users don’t want to remember passwords. You don’t want to store them. So, stop forcing outdated login methods. The best security is the one people actually use.
2. Passkeys are the smartest, easiest authentication method
If you’ve ever used Face ID to unlock your phone, you already understand why passkeys are the future. They replace passwords with a seamless, secure alternative that users actually like.
Passkeys use public/private key encryption, meaning even if hackers breach your system, there’s no password to steal. They work with biometrics—fingerprint, face scan—or a hardware device. From a security perspective, they’re nearly bulletproof. And from a user perspective, they’re a no-brainer.
Implementation is simple. Major vendors like Apple, Google, and Microsoft support passkeys. For developers, it’s as easy as adding a web component. For users, it’s instant access without the hassle of passwords. More security, less friction—exactly what modern authentication should be.
3. OAuth is a shortcut to seamless logins
If you’ve ever clicked “Sign in with Google”, you’ve used OAuth. It lets users authenticate with accounts they already trust, reducing login friction and eliminating the need to manage yet another password.
This is a win-win. Users don’t have to create new credentials. Your platform doesn’t have to store sensitive login data. Security improves because OAuth providers like Google and Apple invest billions into protecting accounts.
Practically speaking, most of your users already have an account with a major provider. If you don’t offer OAuth, you’re making login harder than it needs to be. And in an era where every second of user friction means lost revenue, that’s a mistake.
4. Magic links, a password-free alternative that just works
Another solid option? Magic links. Instead of asking users to remember passwords, you send them a secure link via email or text. One click, and they’re in.
The obvious upside? No passwords to remember, reset, or steal. Each link is temporary and tied to a specific session, making it far more secure than traditional credentials. The downside? Users have to leave your site to check their email. But compared to the alternative—frustrated customers who forget their passwords—it’s a tradeoff worth making.
Many companies, especially in fintech and SaaS, use magic links because they’re simple and effective. If you want to make authentication painless while maintaining security, this is an option worth exploring.
5. Multi-Factor Authentication is your last line of defense
If your platform still requires passwords (which it shouldn’t), you need multi-factor authentication (MFA). Without it, you’re inviting breaches.
MFA works by requiring users to verify their identity in multiple ways. The best order of preference:
- Authenticator apps (like Google Authenticator or Authy) – These generate time-based one-time passwords (OTP) that aren’t transmitted, making them the most secure option.
- Email-based OTPs – Less secure than an app but still a decent choice.
- SMS OTPs – Not great, but better than nothing. SMS is vulnerable to interception and SIM swapping, so avoid it if possible.
The reality? Allowing users to log in with just a password is reckless. Passwords get stolen, reused, or guessed. Adding MFA means a single stolen credential isn’t enough to break in. And as long as you make MFA easy to use (via push notifications or automated password managers), users won’t resist it.
6. Let users see their passwords
It’s a small detail, but it matters: Always let users view their password as they type it.
We’ve all been there—mistyping a password and getting locked out because we can’t see what we entered. Masking passwords by default is fine, but users should have the option to reveal them. It’s a simple way to reduce login failures and frustration.
Think about it—what’s more secure: a user confidently entering the right password on the first try or someone guessing blindly because they can’t see what they’re typing? Give them the option. It’s a small UX fix that improves security and usability at the same time.
7. Never store user passwords – ever
This should go without saying, but here we are: Never store user passwords. Not in plaintext. Not encrypted. Just don’t store them at all.
Instead, use salted and hashed passwords with a strong algorithm like bcrypt, Argon2, or PBKDF2. Why? Because if (or when) your database gets breached, storing passwords means handing attackers the keys to your users’ accounts. Salting and hashing ensure that even if a breach happens, passwords remain unreadable.
Better yet, avoid passwords entirely by using passkeys, OAuth, or magic links. The less user credential data you store, the smaller your attack surface. And the smaller your attack surface, the fewer security headaches you’ll have.
“There’s a simple rule here: If you’re emailing a user their password after they forget it, your system is broken. Fix it before someone exploits it.”
8. Stop requiring “complex” passwords
For years, we were told that a “strong” password needs uppercase letters, numbers, and special characters. Turns out, that’s nonsense.
Forcing users to create overly complex passwords does more harm than good. They end up using weak, predictable patterns (“P@ssw0rd!”) or writing passwords down just to remember them. The real key to password security? Length, not complexity.
A 12+ character passphrase (e.g., “CorrectHorseBatteryStaple”) is exponentially harder to crack than a short, complex mess. If you must use passwords, enforce a minimum length, not arbitrary complexity rules.
Better yet—skip passwords entirely and switch to passkeys or OAuth. But if you must allow passwords, let users create ones they can actually remember.
9. Keep One-Time Passwords (OTPs) short and simple
If your system uses one-time passwords (OTPs) for authentication, keep them short—six digits max. Anything longer is unnecessary and a usability nightmare.
Users have to read, memorize, and type in these codes. Making them longer increases the chance of failure. Six digits offer enough security while keeping it simple. If your system requires more, you’re just adding friction for no reason.
Also, if you can, avoid SMS-based OTPs. They’re vulnerable to interception and SIM-swapping attacks. Authenticator apps or email-based OTPs are the safer options.
10. Security questions are useless
“How do we make authentication even worse?” Someone once answered, “Let’s use security questions.”
Security questions are a terrible idea. The answers are either:
- Too easy to guess (Your mother’s maiden name? Your first pet’s name? Half of these answers are on Facebook.)
- Too hard to remember (Did I say my favorite movie was “Inception” or “Interstellar”?)
The worst part? If users forget their answers, they’re locked out. If attackers guess them, they’re in. Security questions do nothing but add unnecessary frustration.
“Just don’t use security questions. If you need identity verification, use email verification, biometrics, or an authenticator app—anything but security questions.”
11. Don’t lock users out for too many failed logins
Nothing frustrates a user more than being locked out of their own account after a few failed login attempts. People mistype passwords—it happens.
Instead of locking accounts, use rate limiting to slow down brute-force attacks without punishing real users. A simple approach:
- Allow multiple attempts, but add a small delay after repeated failures (e.g., 5 seconds after 3 failures).
- Use CAPTCHAs to block bots without annoying legitimate users.
- Never “freeze” an account permanently—forcing users to go through a long support process only makes them hate your platform.
Security shouldn’t come at the cost of user experience. If someone forgets their password, let them reset it easily. Don’t make them regret using your service.
12. Stop forcing users to change their passwords regularly
Forcing users to change passwords every 60 or 90 days? That’s security theater. It does nothing but make passwords weaker.
When people are forced to change their passwords regularly, they don’t create stronger ones. They just tweak the old one (“Password123” becomes “Password124”), making it easy for attackers to guess.
The only time a password should be changed is if there’s evidence of a breach. Otherwise, let users keep the one they chose.
Better yet? Stop using passwords entirely. Switch to passkeys, OAuth, or magic links. If you must allow passwords, let people create strong, memorable ones—and let them keep them.
Final thoughts
Bad authentication design hurts everyone—users, security teams, and your bottom line. The best systems protect users without frustrating them.
- Passkeys, OAuth, and magic links make login seamless.
- Multi-factor authentication (MFA) adds an extra layer of security without being intrusive.
- Longer, easier-to-remember passwords are better than complex, short ones.
- Ditching outdated practices (like security questions and forced password changes) makes life easier for everyone.
Good security should feel invisible. When authentication is done right, users don’t even think about it. And that’s exactly how it should be.