Модуль с подтверждением регистрации через telegram (аналог смс подтверждения)
Содержание
Демо регистрации через бота telegram
Проект Ebot.one представляет Демо регистрации через бота telegram.
Данный набор файлов (скачать можно по ссылкам ниже) имеет смысл использовать в качестве основы для проекта если:
- В вашей системе (например, сайте) будет регистрация пользователей.
- Нужно свести к минимуму возможность одним пользователем завести несколько аккаунтов.
- Механизм подтверждения уникальности пользователем должен быть бюджетным (сообщение от бота telegram бюджетнее смс).
- Будущая система должна поддерживать более одной языковой версии.
- Будущая система будет иметь как минимум разделение на пользователей и администраторов.
- Необходимо будет добавлять разделы.
- Необходимо чтобы была настройка какие разделы видны, а какие доступны для того или иного типа пользователя системы.
Вид десктоп версии:
Вид мобильной версии:
Данныая версия примера использует фреймфорк bootstrap, что дает системе адаптивность и возможность быстро поменять визуальную составляющую проекта, поскольку bootstrap достаточно прост в освоении, но Вам не составит труда заменить участки кода bootstrap на свои. bootstrap подключен в файле index.php (архив register_demo.zip)
Файлы
Файлы web-интерфейса регистратора:
register_demo.zip (579 Kb)
Файл дампа базы:
sender_users.sql.zip (2 Kb)
Экспорт бота для генерации кода при регистрации нового пользователя:
export_2018-04-22_21-44-21.zip (1 Kb)
Библиотека иконок: (Не обязательно)
fonts.zip (8 281 Kb)
По умолчанию файлы иконок загружаются с fontawesome.com но можно пожертвовать местом на хостинге (19,4 Mb) ради скорости загрузки иконок и скачать их по ссылке выше. В этом случае папку fonts следует положить в корень папки /register_demo/sender (из архива register_demo.zip) и прописать в файле конфига /register_demo/sender/settings.php в переменной $fonts_local = true;
Текущая версия библиотеки 1.1.1
Конфигурационные файлы:
Конфигурационный файл web движка - /register_demo/sender/settings.php (архив register_demo.zip).
Конфигурационные файлы бота для генерации регистрационного кода можно найти в register_demo/bots/source_reqs/77639817/SendManagerBot/ (архив register_demo.zip):
conf.php:
$admin_chat_id = '12345'; - chat_id администратора бота. Для того чтобы узнать свой chat_id (ID в телеграме) достаточно написать боту: getChatId
$key_md5 = md5('sdfghj'); - md5 от key бота в редакторе (не путать с API KEY бота в telegram) (см. настройки бота в редакторе)
$admin_user_id = '56789'; - ID пользователя в редакторе
$bot_api_key = '12345:asdfgh'; - API KEY Бота. API KEY бота в telegram (выдает botfather)
my_sql.class - подключение к базе данных
Модули:
Модули (разделы) задаются в конфигурационном файле settings.php по пути /register_demo/sender/settings.php (архив register_demo.zip).
Для описания модулей предусмотрено два массива.
- modules - массив для названий (URL) модулей и их иконок
- modules_list - описывает какой роле (статусу) пользователя какие разделы видны и доступны. Также в этм массиве можно указать какой раздел загрузить после авторизации (захода в систему) пользователя. Например, администратора система перебросит на администрационный модуль, а пользователя на пользовательский.
Для добавления нового раздела достаточно продублировать модуль demo по пути register_demo/sender/modules, прописать его в массивах modulesи modules_list файла файда settings.php (архив register_demo.zip), а также поменять название функции в файле register_demo/sender/modules/ИМЯ ВАШЕГО МОДУЛЯ/locale/locale_data.php на getИмяВашегоМодуляMas, где ИмяВашегоМодуля должно быть с заглавной буквы. Например, если Ваш новый модуль называется emails то функция будет называться getEmailsMas. В этой функции следует описывать языковые версии используемых в модуле фраз. Пример языковых различий можно посмотреть в базовом файле языков locale_data.php по пути register_demo/sender/locale.
Русскоязычные (и другие языки) имена разделов находятся в файле locale_data.php по пути register_demo/sender/locale.
Языки:
Перечень языков которые вы хотите иметь в системе следует указать в locale_utils.php в функции getLangs
Базовые слова системы (и их перевод), такие как названия базовых модулей (разделов) и т.д. хранятся в файле locale_data.php по пути register_demo/sender/locale
Фразы модулей хранятся в locale_data.php по пути register_demo/sender/modules/ИМЯ МОДУЛЯ
Русскоязычные (и другие языки) имена разделов находятся в файле locale_data.php по пути register_demo/sender/locale.
Роли (статусы пользователей):
Первый пользователь, который зарегистрируется в системе будет иметь роль (статус) root, а все последующие - user. Раздела, которые будут видны пользователем того или иного статуса можно корректировать в массиве modules_list в конфигурационном файле settings.php (архив register_demo.zip). В этом же массиве можно указать какие модули доступны для пользователя.
функция getModulesList, которая используется в некоторых элементах массива modules_list возвращает список всех модулей за исключением тех, которые переданы ей в качестве аргумента. Например, если вы хотите разрешить доступ ко всем модулям - строчка для указания доступа будет выглядеть так: $add['modules_access'] = getModulesList(); Но если вы хотите разрешить доступ ко всем разделам кроме main и registration (чего не стоит делать вероятно) - то это будет выглядеть как: $add['modules_access'] = getModulesList(array("main", "registration"));
Регистрационный бот:
Имя бота, генерирующего для новых пользователей код, можно указать в конфигурационном файле settings.php по пути /register_demo/sender/settings.php (архив register_demo.zip).
Пример генерации кода для регистрации нового пользователя:
Полученный от бота код пользователь введет при регистрации в Вашей системе:
Файлы бота можно скачать по ссылкам выше.
О создании бота можно прочитать тут.
Следует иметь ввиду, что при необходимости система дописывается до работы с подтверждением через СМС или Email.
Для работы через новый сервис достаточно:
- чтобы система генерировала новую запись в базе в таблице sender_users и в поле shash писала нужный Вам код.
- поменять текст, говорящий, что генерация кода производится ботом. Сделать это можно в файле index.php по пути register_demo/sender/modules/registration.
Страница 404 (ненайденный раздел):
В случае если модуль (раздел) не найден система выдаст ошибку 404:
Страница 401 (Доступ закрыт):
В случае если запрашиваемый пользователем модуль закрыт для пользователей его статуса система выдаст страницу модуля 401 (который и отвечает за это). На самом деле даже радел (404), содержимое которого выдается в случае несуществующей страницы (как и любой модуль, хранящийся в register_demo/sender/modules) может при необходимости быть закрыт для пользователя.
ЧПУ
Фалы примера работают через файл index.php по пути /register_demo/sender/ (архив register_demo.zip), выбранная пользователем страница отображается через подключение соответствующего странице модуля. Ссылки на страницы генерируются через функцию getModuleLink файла modules_utils.php по пути register_demo\sender\modules. При необходимости файлы можно настроить на работу через ЧПУ, для чего необходимо произвести соответствующие изменения в указанной функции.