[tLogin] - Авторизация через Телеграм
Подготовил компонент, позволяющий представиться системе посредством телеграм-виджета, с подтверждением через уведомления телеграм.
Поковырять демку можно здесь.
Внимание — если у вас заброкирован телеграм — вы скорее всего увидите пустую страницу.
Телеграм присылает не так много данных
Установка и предварительная настройка
Компонент будет доступен в modstore
Вся работа с API телеграм обычно происходит через ботов. Поэтому в первую очередь вам нужно создать бота. Это очень легко.
1. Открываем ваш телеграм
2. Ищем в поиске бота @botFather — он отвечает за создание ботов. Добавляем его себе
3. Пишем папаше ботов команду /newbot и отвечаем на несколько вопросов. Сначала придумаем имя бота. Затем задаем уникальное имя, через которое сможем обращаться к нашему боту через поиск. Username должен заканчиваться на _bot. Например, называем его как сайт s1441 и задаем юзернейм s1441_bot
4. На этом все. Бот создан. Вам выдается уникальный token — не забудьте его сохранить. Он пригодится при настройке компонента.
5. Последнее что нужно сделать указать с каким доменом будет работать бот. Пишем в диалоге с botFather /setdomain. Папаша ботов предлагает выбрать бота для которого вы собираетесь задать домен. У вас их может быть несколько. После выбора нужного бота — указываете адрес сайта, к которому будет привязан бот.
Вот и вся настройка
Настройка MODX
В системных настройках нужно указать юзернейм бота (которое с _bot) и токен, выданный для бота пару шагов назад.
Авторизация разрешена пока, только в контекст web
Компонент очень сырой, зато бесплатный. Если сообщество поддержит и он будет востребован хоть немного, будем дорабатывать и развивать на основе обратной связи.
UPD — заметили случай, что регистрация\авторизация через штатные механизны MODX не срабатывает, если у пользователя telegram пустой username.
Поковырять демку можно здесь.
Внимание — если у вас заброкирован телеграм — вы скорее всего увидите пустую страницу.
Основные возможности компонента:
- Аутентификация через ваш телеграм. Вам приходит запрос в программу на телефоне (или компьютере)
- Фоновая регистрация пользователя без заполнения персональных данных
- Возможность представляться без фоновой регистрации. Предусмотрена настройка отключить регистрацию. Персональные данные пишутся в кэш MODX. Далее их можно подставить просто в форму комментария например. Не знаю будет ли востребована идея, в моем рабочем опыте был клиент, просивший сделать возможность быстро представляться без регистрации
Ограничения:
Телеграм присылает не так много данных
- Имя
- Фамилия (если есть)
- Юзернейм
- Аватар
Установка и предварительная настройка
Компонент будет доступен в modstore
Вся работа с API телеграм обычно происходит через ботов. Поэтому в первую очередь вам нужно создать бота. Это очень легко.
1. Открываем ваш телеграм
2. Ищем в поиске бота @botFather — он отвечает за создание ботов. Добавляем его себе
3. Пишем папаше ботов команду /newbot и отвечаем на несколько вопросов. Сначала придумаем имя бота. Затем задаем уникальное имя, через которое сможем обращаться к нашему боту через поиск. Username должен заканчиваться на _bot. Например, называем его как сайт s1441 и задаем юзернейм s1441_bot
4. На этом все. Бот создан. Вам выдается уникальный token — не забудьте его сохранить. Он пригодится при настройке компонента.
5. Последнее что нужно сделать указать с каким доменом будет работать бот. Пишем в диалоге с botFather /setdomain. Папаша ботов предлагает выбрать бота для которого вы собираетесь задать домен. У вас их может быть несколько. После выбора нужного бота — указываете адрес сайта, к которому будет привязан бот.
Вот и вся настройка
Настройка MODX
В системных настройках нужно указать юзернейм бота (которое с _bot) и токен, выданный для бота пару шагов назад.
Авторизация разрешена пока, только в контекст web
Компонент очень сырой, зато бесплатный. Если сообщество поддержит и он будет востребован хоть немного, будем дорабатывать и развивать на основе обратной связи.
UPD — заметили случай, что регистрация\авторизация через штатные механизны MODX не срабатывает, если у пользователя telegram пустой username.
Поблагодарить автора
Отправить деньги
Комментарии: 28
Класс, я тоже на сайте всю авторизацию перевел на телеграм.
У меня тоже самое.
Это не связано с блокировкой Телеграм?
Это не связано с блокировкой Телеграм?
Все хорошо
только телеграм заблокирован и работает через раз
только телеграм заблокирован и работает через раз
Круто, очень классно получилось!
Для очистки виджета, нажмите кнопку выхода в своем ТелеграмТо есть нужно выходить из программы телеграмма на компе? Неудобно как-то…
То есть нужно выходить из программы телеграмма на компе? Неудобно как-то…А, сорри, не сразу понял смысл этих слов. Нужно выходить не из телеграмма, а нажимать на пноку Disconnect в боте, который запросил авторизацию на сайте. Теперь всё логично. ))
Когда ждать компонент?
Ой — это вопрос с модератеру, который в жизни очень сильно занятой человек.
Добавлю пока в посте ссылку на транспортный пакет, который можно установить вручную
Добавлю пока в посте ссылку на транспортный пакет, который можно установить вручную
Спасибо
Ссылка выхода не работает, просто перекидывает на главную. Если ручками прописать в адрес ?logout=1, то все работает.
Почему не даете в компоненте id usera?
Почему не даете в компоненте id usera?
Как без id проверять что-это именно этот пользователь, а не другой?
Ссылка выхода не работает, просто перекидывает на главную. Если ручками прописать в адрес ?logout=1, то все работает.Какая версия компонента установлена? В 1.0.2 по идее ошибка исправлена.
UPD. Виноват, версию выпустил — выгрузить в магазин забыл. Можно обновляться
Если эта версия стоит и все равно не работает — могу посмотреть в чем дело уже на сайте.
Почему не даете в компоненте id usera?Потому что текущий пользователь и без id доступен в modx->user
1.0.2 вообще сломала весь сайт удалив pdo.
Я про id user в телеграмме, он же возвращает его.
Я про id user в телеграмме, он же возвращает его.
1.0.2 вообще сломала весь сайт удалив pdo.Странно, потестирую.
Я про id user в телеграмме, он же возвращает его.ID телеграм юзера мы принимаем и храним в extended поле. Как и все остальные поля отдаваемые телегой. Я никак в толк не возьму зачем его где то использовать? В каком случае?
А вот теперь понял, то есть проверка происходит не по имени, а по возвращаемому id?
Проверка чего?
Что это тот юзер, не просто чувак с таким же ником
Ну да, проверяю есть ли в профиле данные телеграма.
А вообще можно и исходный код посмотреть, он крайне простенький.
А вообще можно и исходный код посмотреть, он крайне простенький.
Сорри за глупые вопросы, хотел разобраться)
Хороший компонент, поставил себе на сайт. Автору отдельное спасибо за оперативную помощь. Побольше бы таких людей.
Привет Николай ест вопросы
1) Как перенаправит на главную страницу после регистрации
2) Как сменит окно регистрации Telegramm на русский
1) Как перенаправит на главную страницу после регистрации
2) Как сменит окно регистрации Telegramm на русский
Привет. Не помню уже как он устроен. Я один раз сделал и забыл.
Нужно поднимать исходники, смотреть.
Нужно поднимать исходники, смотреть.
Вход работает с любой страницы кроме главной.
Кидает на адрес:
Кидает на адрес:
site.ru/?Id=000&first_name=Name&last_name=Name&username=Name&auth_date=000&hash=000
Прикол )
Если в качестве страницы 404 указать главную, то работает.
Если в качестве страницы 404 указать главную, то работает.
Если сниппет вызвать в шаблоне 404, тоже срабатывает, но остается на ней после авторизации.
Как сделать чтобы
Как сделать чтобы
site.ru/?Id=000&first_name=Nameобрабатывался, а не выдавал 404?
Разобрался!
Нужно изменить request_param_id
Нужно изменить request_param_id
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.