Если вы когда-нибудь регистрировались на сайте через Google или Apple — вы уже примерно понимаете, о чём речь. Telegram предлагает похожий механизм: пользователь нажимает кнопку, подтверждает вход в приложении и авторизуется. Никаких форм, паролей.
В этой статье посмотрим детальнее, как работает авторизация через Telegram, зачем она вообще нужна и как её подключить на практике.
Стоит сразу отметить, что недавно Telegram анонсировал официальный механизм авторизации. С помощью аккаунта мессенджера можно быстро зарегистрироваться или авторизоваться в приложении или на сайте. Пользователю достаточно поделиться с сайтом или ботом своим номером телефона.
Зачем это нужно и что получаете
Начнём с простого: зачем вообще делать вход через Telegram, если можно сделать обычную форму с логином и паролем.
- Конверсия растёт. Когда пользователь видит кнопку «Войти через Telegram» — он проходит авторизацию за несколько секунд. Не нужно придумывать пароль, подтверждать email, искать SMS с кодом.
- Верификация номера телефона — бесплатно. У каждого пользователя Telegram привязан номер телефона. Если нужен верифицированный контакт, этот способ как раз снижает расходы на SMS-подтверждение при регистрации.
- Прямой канал для общения. После авторизации появляется возможность писать пользователю через бота. Это удобно для уведомлений, подтверждений заказов, сервисных сообщений.
- Дополнительные возможности. Telegram поддерживает API и мини-приложения.
Как выглядит авторизация на сайте через Telegram
Сначала пройдём этот путь глазами обычного посетителя сайта.
- Пользователь открывает ваш сайт и видит кнопку «Войти через Telegram».
- Нажимает её — появляется всплывающее окно с предложением ввести номер телефона.
- На телефон приходит уведомление от Telegram с просьбой подтвердить вход.
- Пользователь нажимает «Принять» в приложении.
- Готово — он авторизован на вашем сайте.
Три-четыре нажатия, и человек пользуется сайтом или приложением. При этом он видит, через какого бота происходит вход. Поэтому важно, чтобы бот был узнаваемым: с логотипом вашего сервиса и понятным названием.
Два способа подключить Telegram авторизацию
Сегодня Telegram предлагает два подхода, и оба актуальны.
Способ 1: новый стандарт
Современный вариант на основе протокола OpenID Connect (Telegram Login Library). Если вы уже используете какой-нибудь OpenID Connect-совместимый инструмент (Keycloak, Auth0, Authentik), то интегрировать Telegram авторизацию будет несложно: подключаете как обычный провайдер.
Поток авторизации здесь стандартный (Authorization Code Flow). Вы получаете защищённый токен, который можно верифицировать криптографически.
Способ 2: классический виджет авторизации
Более старый вариант — встраиваемый виджет. Менее гибкий в плане кастомизации, но по-прежнему рабочий и хорошо документированный. Подходит, если вы хотите быстро добавить кнопку без глубокой интеграции.
Разберём оба подхода по шагам.
Как настроить авторизацию через Telegram
Шаг 1. Создаём и настраиваем бота
Без бота Telegram авторизация не работает. Бот — это технический инструмент и одновременно «лицо» авторизации: пользователь видит имя и аватарку в момент подтверждения входа.
Поэтому первое, что нужно сделать — убедиться, что бот выглядит как часть вашего сервиса. Поставьте логотип, дайте понятное название. Пользователь гораздо охотнее подтверждает вход, когда видит знакомый бренд, а не безымянного бота.
Чтобы создать или выбрать бота — зайдите в чат с @BotFather. Если бота ещё нет, создайте его командой /newbot. Если уже есть — выберите нужный из списка командой /mybots.
Скопируйте токен бота — он понадобится для настройки.
Шаг 2. Регистрируем адреса и получаем Client ID
Telegram не позволяет перенаправлять пользователей на произвольные URL — только на те, которые вы явно указали. Это защита от подделки авторизационных запросов.
Откройте мини-приложение @BotFather, зайдите в настройки бота: Bot Settings → Web Login. Здесь нужно добавить все адреса, где будет работать ваша авторизация:
- адреса сайтов, где будет встроена кнопка (например, https://example.com)
- callback-адреса для потока (например, https://example.com/auth/callback)
Там же BotFather покажет ваш Client ID и Client Secret — сохраните их в надёжном месте, они нужны для настройки OIDC-клиента.
Telegram двухфакторная авторизация: в чём разница
Стоит разграничить два разных понятия, которые часто путают.
- Двухфакторная авторизация — это настройка внутри самого Telegram, когда вы защищаете свой аккаунт дополнительным паролем. К виджету для сайтов она отношения не имеет.
- Авторизация на сайте через Telegram — когда ваш сайт использует Telegram как провайдер идентификации. Пользователь подтверждает вход в приложении, и этого достаточно.
Если вы хотите добавить второй фактор именно для входа на ваш сайт — можно использовать отправку кодов подтверждения. Для этого хорошо подходят специализированные сервисы.
Коды подтверждения и другие каналы связи
Telegram запрашивает авторизацию через само приложение, это удобно. Но не всегда достаточно. Иногда нужно дополнительно подтвердить действие: вход с нового устройства, смену пароля, иные действия.
Для таких сценариев используют коды подтверждения, можно задействовать разные каналы в зависимости от ситуации.
Notificore — платформа, которая позволяет отправлять коды подтверждения через Telegram, SMS, email и голосовые звонки. Это удобно, когда вам нужна гибкость: если пользователь недоступен в одном канале, сообщение уйдёт через другой.
- Telegram API — код приходит прямо в мессенджер, которым пользователь уже пользуется.
- SMS — универсальный вариант, работает даже без интернета и без установленного Telegram.
- Email-письма — для транзакционных уведомлений: подтверждение регистрации, восстановление доступа.
Такой подход называют каскадной верификацией: вы не зависите от одного канала и можете настроить логику: через какой канал пробовать отправку сначала, а через какой отправлять повторно, если первый способ не сработал.
Что нужно учесть при внедрении
Несколько практических моментов, о которых стоит подумать заранее.
- Внешний вид бота. Пользователь видит имя и аватарку бота в момент подтверждения входа. Если бот выглядит непрофессионально или незнакомо, часть пользователей просто закроет окно. Сделайте бота частью бренда.
- Регистрация всех URL заранее. Telegram не пропускает редиректы на незарегистрированные адреса. Если вы добавите новый домен или поддомен, не забудьте обновить список в BotFather.
- Проверка подписи — обязательна. Данные нельзя принимать без верификации. HMAC-проверка — обязательный шаг.
- Актуальность данных: auth_date показывает, когда пользователь авторизовался. Если прошло больше суток, то стоит попросить повторный вход.
Итог
Авторизация на сайте через Telegram — это работающий инструмент с понятной механикой. Пользователь получает быстрый вход без лишних шагов, вы — верифицированный контакт и возможность общаться с ним напрямую через бота.
Telegram запрашивает авторизацию через своё приложение, которое уже установлено у большинства пользователей. Это снижает барьер входа и ускоряет онбординг.
Технически всё реализуемо своими силами: создаёте бота, регистрируете URL, подключаете виджет или новый клиент, настраиваете проверку подписи. Если нужны дополнительные каналы для кодов подтверждения или сервисных уведомлений — смотрите в сторону Notificore, чтобы объединить Telegram, SMS, email и голос в одном интерфейсе.
Вход через Telegram уже давно перестал быть экзотикой — это практичное решение, которое стоит рассмотреть для любого проекта, где важны конверсия и удобство пользователей.