Вход через Telegram
Кроме кода из письма, человек может войти через Telegram. Эта страница описывает, что происходит внутри окна Fidmos, когда выбран этот способ: какие запросы уходят и какие бывают ошибки.
Как идёт вход
Заголовок раздела «Как идёт вход»-
Человек подтверждает вход в Telegram. Окно открывает виджет Telegram; после подтверждения оно шлёт данные Telegram на проверку —
POST /api/v1/embed/telegram:Content-Type: application/json { "flow_id": "...", "id": 12345678, "auth_date": 1717000000, "hash": "...", "first_name": "Иван", "username": "ivan" }Сервер проверяет подпись данных (
hash) секретом бота. Не сошлось —telegram_invalid. -
Личность связывается с пользователем. Если этот Telegram уже привязан к пользователю, поток готов к завершению:
{ "status": "authenticated", "completion_handle": "..." }Если Telegram ещё ни к кому не привязан, окно получает
identity_unlinkedи заводит нового пользователя —POST /api/v1/embed/identity/createс тем жеflow_id:{ "status": "authenticated", "completion_handle": "..." } -
Окно завершает вход — меняет
completion_handleна код авторизации (POST /api/v1/embed/complete) и отдаёт его вашей странице черезonSuccess. Дальше — обычный обмен кода на токен.
Ошибки этого потока
Заголовок раздела «Ошибки этого потока»Все ответы с ошибкой — в конверте { "error": "<код>" }. Значения кодов и общий разбор —
в справочнике ошибок.
| Код | Когда |
|---|---|
telegram_invalid |
данные Telegram не прошли проверку подписи |
no_pending_identity |
нет отложенного способа входа для создания пользователя |
identity_taken |
этот Telegram успели привязать к другому пользователю |
invalid_completion |
завершение потока не удалось (HTTP 409) |
authorization_failed |
окно не смогло выпустить код авторизации |
flow_expired |
поток не найден или истёк |
parent_origin_mismatch |
запрос пришёл с чужого источника |