Přeskočit na hlavní obsah

Odesílání SMS PIN, 2FA pomocí API

Úvod

Tato dokumentace popisuje, jakým způsobem integrovat odesílání pinů přímo pomocí API, bez použití UI widgetu. Tento přístup je vhodný pro:

  • Serverové aplikace
  • Mobilní aplikace
  • Vlastní uživatelská rozhraní
  • Integrace s existujícími systémy

Obecný princip ověření

Ověření telefonního čísla probíhá ve dvou krocích:

  1. Zahájení ověření - odešle zprávu s kódem (vaše aplikace, pomocí API volání)
  2. Doručení kódu - obdrží kód (telefonní číslo obdrží kód)
  3. Získání kódu v aplikaci - pošle obdržený kód (uživatel zadá kód do vaší aplikace)
  4. Ověření kódu - ověří platnost kódu (vaše aplikace, pomocí API volání nebo offline verifikace)

Režimy fungování

Claudflare Turnstile

Ve výchozím nastavení v rámci použití UI Widgetu máte možnost využít náš sdílený Cloudflare Turnstile pro ověření uživatelského požadavku a omezení robotického využití (spam, zneužití).

Tato forma validace je ve výchozím nastavení zapnuta, ale může být i deaktivována.

Rate limiting

API implementuje několik úrovní rate limitingu. Některé jsou na úrovni celé služby, některé jsou na úrovni vašeho účtu.

Limity služby

note

Limity služby jsou flexibilní a zohledňují aktuální trend. Cílem je blokovat nárazovné počty ověření v rámci destinací u kterých to není běžné (exotické destinace s vysokou cenou za zprávu).

Limity na konkrétní telefonní číslo

  • 1 ověření za minutu (nelze spustit ověření znovu za méně než 1 minutu)
  • Počet ověření za den (jedno telefonní číslo může být každý den pouze 5x ověřeno)

Limity na zemi

  • Počet ověření za den
  • Max. počet souběžných ověření

Limity na vašem účtu

  • 1 000 ověření za den (výchozí)
  • Max 10 souběžných ověření (výchozí)
  • Možnost omezit konkrétní povolené desinace pro ověřování

Best practices

✅ Doporučujeme

  • Vždy ověřujte výsledek verifikace na backendu
  • Implementujte nějakou formu omezení počtu dotazů na váš backend pro ověření kódu
  • Ověřte, zda zadané telefonní číslo nebylo již použito jiným uživatelem
  • Umožněte opětovné zaslání kódu a restart procesu ověření

❌ NEdoporučujeme

  • Spoléhat na to, že na klientské straně došlo k ověření
  • Ukládat výsledek ověření do localStorage/cookies a následně z něj číst (spoléhat, že tyto informace jsou správně)
  • Použít výpočet HMAC nebo ověření pomocí API na klientské straně (zveřejnění tajného kliče, jeho použití na klientské straně)
  • Povolit vysoké počty pokusů nebo počtů verifikací
  • Přeskočit ověření verifikace