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:
- Zahájení ověření - odešle zprávu s kódem (vaše aplikace, pomocí API volání)
- Doručení kódu - obdrží kód (telefonní číslo obdrží kód)
- Získání kódu v aplikaci - pošle obdržený kód (uživatel zadá kód do vaší aplikace)
- 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
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