Блог » Телеграм виджет для авторизации на сайтах

Телеграм виджет для авторизации на сайтах

Виджет авторизации
Сегодня мы представляем виджет Telegram Login для внешних веб-сайтов . Когда вы впервые воспользуетесь виджетом на сайте, он  запросит номер телефона и отправит вам подтверждение через Telegram для  авторизации вашего браузера. Как только это будет сделано, вы получите логин с двумя кнопками на каждом веб-сайте, который поддерживает вход в Telegram:

Авторизация через телеграмм

Нажимая кнопку «Принять», будут отправлены: имя , имя пользователя и ваш профайл к владельцу сайта. Ваш номер телефона остается скрытым . Веб-сайт также может запросить разрешение на отправку сообщений от своего бота .

Разрешаем писать боту первым

Боты Telegram — это мощный инструмент коммуникации, но до сегодняшнего дня они не могли начать разговор первыми. Даже если бы вы хотели, чтобы они обратились к вам, сначала вам нужно было «стартануть» их.

Благодаря новому виджету входа, переход от взаимодействия с сайтом к разговору на Telegram становится абсолютно без трения .

Бот пишет первый

Потенциальные варианты использования безграничны. Боты могут использоваться для предоставления поддержки клиентов, принятия платежей или отправки уведомлений любого рода, включая выписки со счета, отслеживание отгрузки, обновления рейсов и многое другое.

Все под контролем

После каждого входа,Telegram отправит вам сообщение о ваших разрешениях и данных, которые вы передали владельцу веб-сайта. Вы можете отменить авторизацию, нажав соответствующую кнопку в сводке входа.

Telegram for Android 4.8 , также  включает раздел в настройках конфиденциальности и безопасности, в котором перечислены все сайты, на которых вы вошли в систему, используя Telegram. Другие приложения скоро последуют.

Этот простой инструмент для входа в систему — это первый этап проекта Telegram ID , который мы будем развертывать в течение всего этого года.




Как настроить виджет авторизации через телеграмм

Виджет входа Telegram — это простой способ авторизации пользователей на вашем веб-сайте.

Настраиваем бота

Чтобы использовать виджет входа, вам понадобится бот Telegram .

Мы настоятельно рекомендуем, чтобы изображение профиля бота , который используется для авторизации соответствует с логотипом вашего сайта, и что бот имя отражает связь.

Пользователи будут видеть это сообщение при входе на ваш сайт:

Авторизация через телеграмм

Скорее всего, пользователи войдут в систему, если ваш бот имеет имя и логотип, которые они ожидают увидеть.

Связь домена и бота

После того, как вы выбрали бот, отправить команду /setdomain  отцу ботов @Botfather  для того, чтобы связать домен вашего сайта с ботом. Затем настройте свой виджет и вставьте код на свой сайт.

Конфигурация виджета

По ссылке вы можете задать конфигурации виджета.

Получение данных авторизации

После успешного авторизации виджет может возвращать данные двумя способами:

  • перенаправляя пользователя к URL-адресу, указанному в data-auth-urlатрибуте, со следующими параметрами: id , first_name , last_name , username , photo_url , auth_date и hash ;
  • вызывая функцию обратного вызова data-onauthс JSON-объект , содержащий Ид , first_name , last_name , имя пользователя , PHOTO_URL , auth_date и хэш — полей.

Проверка авторизации

Вы можете проверить аутентификацию и целостность полученных данных путем сравнения полученного хэш-параметра с шестнадцатеричным представлением подписи HMAC-SHA-256 строки проверки данных с хешем SHA256 маркера бота, используемого в качестве секретного ключа ,

Строка проверки данных представляет собой конкатенацию всех полученных полей, отсортированных в алфавитном порядке, в формате key=<value>с символом перевода строки (‘\ n’, 0xA0), используемым в качестве разделителя — например 'auth_date=<auth_date>\nfirst_name=<first_name>\nid=<id>\nusername=<username>'.

Полная проверка может выглядеть так:

data_check_string = ...
secret_key = SHA256(<bot_token>)
if (hex(HMAC_SHA256(data_check_string, secret_key)) == hash) {
  // data is from Telegram
}

Чтобы предотвратить использование устаревших данных, вы можете дополнительно проверить поле auth_date , которое содержит отметку времени Unix при получении аутентификации.