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