Аутентификация в мобильных приложениях с помощью Telegram Login Widget обделена информацией как официальной документации, так и в интернете. Меня зовут Александр, в этой статье поделюсь примером реализации входа в iOS приложение c помощью Telegram с блекджеком и граблями. В статье приведены сниппеты кода на Typescript + React, Go и Swift.
Содержание:
Telegram Login Widget API.
Telegram Login Widget Internals.
Кастомизируем некастомизируемое.
Особенности на бекенде
Интеграция в нативное приложение
Нам понадобятся:
Отдельный маршрут
/oauthв веб-приложении (в нашем случае, написанном на React)Набор эндпроитов на бекенде, которые обработают данные аутентификации
iOS приложение
Telegram Login Widget API
Если вы уже ранее писали аутентификацию с помощью любого популярного OAuth 2.0 провайдера, типа Google, вы наверняка ожидаете какую-то мобильную библиотеку, которая предоставит все необходимые API. Однако в Telegram пошли своим минималистичным путем, предоставив нам Telegram Login Widget - маленький файл Javascript, который разработчик должен просто добавить к своему web-сайту.
Документация Telegram, предлагает сделать быстрые настройки встраиваемого кусочка кода:
Имя бота
Размер кнопки и радиус краев (с показом или без фото юзера, если он уже аутентифицирован в web-версии Телеграм)
И самая важная, на мой взгляд настройка, - выбор callback или redirect url, который будет вызван в качестве ответа на успешную аутентификацию.
Вот и весь доступный API.
После встраивания, если всё прошло успешно, Telegram добавляет в DOM дерево iframe фиксированного размера, в котором отображается кнопка и подгружаются другие скрипты, которыми заведует телеграм
