Перейти к содержимому
FidmosДокументация

Вход по коду

Самый частый способ входа — код из письма. Эта страница описывает, что происходит внутри окна Fidmos, когда человек вводит почту: какие запросы уходят, что возвращается и какие бывают ошибки.

  1. Человек вводит почту. Окно шлёт POST /api/v1/embed/login/send с идентификатором потока и адресом:

    POSThttps://id.fidmos.com/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 — сколько живёт код.

  2. Человек вводит код. На почту приходит шестизначный код (тема письма — «Код для входа»). Окно проверяет его через POST /api/v1/embed/login:

    POSThttps://id.fidmos.com/api/v1/embed/login
    Content-Type: application/json
    
    { "flow_id": "...", "code": "123456" }

    Код — ровно шесть цифр. Удачная проверка возвращает готовность потока к завершению:

    { "status": "authenticated", "completion_handle": "..." }
  3. Окно завершает вход и отдаёт вашей странице код авторизации через 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 запрос пришёл с чужого источника