Skip to main content

Overview

Protected Auth is a ready-made solution in Stytch’s frontend & mobile SDKs that seamlessly integrates with Device Fingerprinting to detect and stop fraud, such as credential stuffing attacks. When Protected Auth is enabled, the SDK automatically generates a Telemetry ID before an API call and includes the Telemetry ID in the Stytch API request. The API will verify the fingerprint verdict before authenticating the request and handles the backend integration.

Scenario: Credential stuffing

Protected Auth will stop the attack by detecting signs of browser automation or scripting. The attacker only sees failed authentication attempts with no idea if the request failed due to a failed fingerprint request or an incorrect password.

Configuring Protected Auth

Protected Auth requires no code changes and is enabled from the Dashboard.
  • Follow our Get started guide to enabling Protected Auth.

Connection type modes

There are two modes for Protected Auth:
  • Observation mode: Generates and submits fingerprints to the API, but the API will not enforce any action.
  • Enforcement mode: The API will react to each fingerprint lookup triggered by the SDK based on the verdict.

Handling challenge verdicts

BLOCK verdicts are a clear sign that traffic should be blocked. But in cases where it is unclear if the request is malicious, CHALLENGE verdicts are returned. You can configure how Protected Auth handles challenge verdicts:
  • See Challenge verdict to learn more about your options: Allow, Block, or Trigger CAPTCHA.
By default, the API will continue CHALLENGE verdicts as if they received an ALLOW verdict.

Protected methods

These methods will collect fingerprints and, when in Enforcement mode, prevent actions if a fingerprint receives a BLOCK verdict:

Consumer

  • stytch.biometrics.authenticate
  • stytch.cryptoWallets.authenticate
  • stytch.impersonation.authenticate
  • stytch.magicLinks.email.loginOrCreate
  • stytch.magicLinks.email.send
  • stytch.otps.authenticate
  • stytch.otps.email.loginOrCreate
  • stytch.otps.sms.loginOrCreate
  • stytch.otps.sms.send
  • stytch.otps.whatsapp.loginOrCreate
  • stytch.otps.whatsapp.send
  • stytch.passwords.authenticate
  • stytch.passwords.create
  • stytch.passwords.resetByEmail
  • stytch.passwords.resetByEmailStart
  • stytch.passwords.resetByExistingPassword
  • stytch.passwords.resetBySession
  • stytch.totps.authenticate
  • stytch.totps.recover
  • stytch.webauthn.authenticate

Multi-tenant / B2B

  • stytch.impersonation.authenticate
  • stytch.magicLinks.authenticate
  • stytch.magicLinks.discovery.authenticate
  • stytch.magicLinks.email.discovery.send
  • stytch.oauth.authenticate
  • stytch.oauth.discovery.authenticate
  • stytch.otps.email.authenticate
  • stytch.otps.email.discovery.authenticate
  • stytch.otps.email.discovery.send
  • stytch.otps.email.loginOrSignup
  • stytch.otps.sms.authenticate
  • stytch.otps.sms.send
  • stytch.passwords.authenticate
  • stytch.passwords.discovery.authenticate
  • stytch.passwords.discovery.resetByEmail
  • stytch.passwords.discovery.resetByEmailStart
  • stytch.passwords.resetByEmail
  • stytch.passwords.resetByEmailStart
  • stytch.passwords.resetByExistingPassword
  • stytch.passwords.resetBySession
  • stytch.recoveryCodes.recover
  • stytch.recoveryCodes.rotate
  • stytch.sso.authenticate
  • stytch.totp.authenticate
  • stytch.totp.create

Next steps