Вход по коду
Самый частый способ входа — код из письма. Эта страница описывает, что происходит внутри окна Fidmos, когда человек вводит почту: какие запросы уходят, что возвращается и какие бывают ошибки.
Как идёт вход
Заголовок раздела «Как идёт вход»-
Человек вводит почту. Окно шлёт
POST /api/v1/embed/login/sendс идентификатором потока и адресом:Content-Type: application/json { "flow_id": "...", "email": "user@example.com" }В ответ — подтверждение отправки и тайминги:
{ "status": "code_sent", "resend_after": 60, "expires_in": 600 }resend_after— сколько секунд до повторной отправки,expires_in— сколько живёт код. -
Человек вводит код. На почту приходит шестизначный код (тема письма — «Код для входа»). Окно проверяет его через
POST /api/v1/embed/login:Content-Type: application/json { "flow_id": "...", "code": "123456" }Код — ровно шесть цифр. Удачная проверка возвращает готовность потока к завершению:
{ "status": "authenticated", "completion_handle": "..." } -
Окно завершает вход и отдаёт вашей странице код авторизации через
onSuccess. Дальше — обычный обмен кода на токен.
Тайминги и ограничения
Заголовок раздела «Тайминги и ограничения»expires_in— сколько живёт поток (и код внутри него). Поток истёк — проверка вернётflow_expired; код уже использован или сброшен —code_expired. В обоих случаях нужен новый код.- Повторная отправка до
resend_afterне шлёт новое письмо. Запрос вернётся успешно (code_sent), но письмо повторно не уйдёт —resend_afterговорит, сколько секунд ждать. - Число отправок ограничено (по умолчанию 3). Сверх лимита —
code_send_limit. - Число попыток ввода ограничено (по умолчанию 5). Исчерпав их, окно получит
code_attempts_exhausted.
Ошибки этого потока
Заголовок раздела «Ошибки этого потока»Все ответы с ошибкой — в конверте { "error": "<код>" }. Значения кодов и общий разбор —
в справочнике ошибок.
| Код | Когда |
|---|---|
invalid_code |
код введён неверно |
code_expired |
срок кода истёк |
code_attempts_exhausted |
исчерпаны попытки ввода |
code_send_limit |
исчерпан лимит отправок кода |
flow_too_short |
у потока мало времени жизни — новый код не выдаётся |
invalid_flow_state |
поток не на том шаге |
identity_taken |
способ, который поток пытался привязать, уже занят другим пользователем |
flow_expired |
поток не найден или истёк |
parent_origin_mismatch |
запрос пришёл с чужого источника |