Модуль с подтверждением регистрации через telegram (аналог смс подтверждения) — различия между версиями
Var null (обсуждение | вклад) (→Страница 404 (Ненайденный раздел):) |
Var null (обсуждение | вклад) |
||
(не показано 11 промежуточных версий этого же участника) | |||
Строка 2: | Строка 2: | ||
== Демо регистрации через бота telegram == | == Демо регистрации через бота telegram == | ||
− | Проект Ebot.one представляет '''[http://r911236z.bget.ru/www_events/ddd/sender Демо]''' | + | Проект Ebot.one представляет мини-фреймворк с использованием регистрации через бота telegram. |
+ | |||
+ | * '''[http://r911236z.bget.ru/www_events/ddd/sender Демо]''' фреймворка. | ||
+ | * '''[http://sendmanager.ru Рабочий проект]''' с использованием фреймворка. | ||
'''Данный набор файлов (скачать можно по ссылкам ниже) имеет смысл использовать в качестве основы для проекта если''': | '''Данный набор файлов (скачать можно по ссылкам ниже) имеет смысл использовать в качестве основы для проекта если''': | ||
Строка 35: | Строка 38: | ||
'''Файлы web-интерфейса регистратора:''' | '''Файлы web-интерфейса регистратора:''' | ||
− | [https://ebot.one/all/s_radoid/dialogs/demo/register_demo/register_demo.zip register_demo.zip] ( | + | [https://ebot.one/all/s_radoid/dialogs/demo/register_demo/version_1_1_2/register_demo.zip register_demo.zip] (1504 Kb) |
'''Файл дампа базы:''' | '''Файл дампа базы:''' | ||
− | [https://ebot.one/all/s_radoid/dialogs/demo/register_demo/sender_users.sql.zip sender_users.sql.zip] (2 Kb) | + | [https://ebot.one/all/s_radoid/dialogs/demo/register_demo/version_1_1_2/sender_users.sql.zip sender_users.sql.zip] (2 Kb) |
'''Экспорт бота для генерации кода при регистрации нового пользователя:''' | '''Экспорт бота для генерации кода при регистрации нового пользователя:''' | ||
− | [https://ebot.one/all/s_radoid/dialogs/demo/register_demo/export_2018-04- | + | [https://ebot.one/all/s_radoid/dialogs/demo/register_demo/version_1_1_2/export_2018-04-23_20-31-45.zip export_2018-04-23_20-31-45.zip] (1 Kb) |
'''Библиотека иконок:''' (Не обязательно) | '''Библиотека иконок:''' (Не обязательно) | ||
Строка 49: | Строка 52: | ||
[https://ebot.one/all/s_radoid/dialogs/demo/register_demo/fonts.zip fonts.zip] (8 281 Kb) | [https://ebot.one/all/s_radoid/dialogs/demo/register_demo/fonts.zip 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'''; | + | По умолчанию файлы иконок загружаются с '''fontawesome.com''' но можно пожертвовать местом на хостинге (19,4 Mb) ради скорости загрузки иконок и скачать их (всю библиотеку) по ссылке выше. В этом случае папку '''fonts''' следует положить в корень папки '''/register_demo/sender''' (из архива '''register_demo.zip''') и прописать в файле конфига '''/register_demo/sender/settings.php''' в переменной $fonts_local = '''true'''; |
== Конфигурационные файлы == | == Конфигурационные файлы == | ||
Строка 60: | Строка 63: | ||
<code> | <code> | ||
− | |||
$admin_chat_id = '12345'; - chat_id администратора бота. Для того чтобы узнать свой chat_id (ID в телеграме) достаточно написать боту: '''getChatId'''. Это значение необходимо прописать здесь в конфигурационном файле и в настройках бота в редакторе. | $admin_chat_id = '12345'; - chat_id администратора бота. Для того чтобы узнать свой chat_id (ID в телеграме) достаточно написать боту: '''getChatId'''. Это значение необходимо прописать здесь в конфигурационном файле и в настройках бота в редакторе. | ||
Строка 68: | Строка 70: | ||
$bot_api_key = '12345:asdfgh'; - [[Создание_аккаунта|API KEY Бота]]. API KEY бота в telegram (выдает botfather) при создании бота. Также прописывается в настройках бота в редакторе. | $bot_api_key = '12345:asdfgh'; - [[Создание_аккаунта|API KEY Бота]]. API KEY бота в telegram (выдает botfather) при создании бота. Также прописывается в настройках бота в редакторе. | ||
− | |||
</code> | </code> | ||
'''my_sql.class''' - подключение к базе данных | '''my_sql.class''' - подключение к базе данных | ||
+ | |||
+ | В механизме реализована проверка на частоту обращения к скриптам, которые могут представлять потенциальный интерес для взлома. Если пользователь пытается обратиться к скрипту чаще чем указано в настройках получит сообщение с предложением повторить запрос позже. Настройка этого лимита находится в файле '''time_access_inc.php''' по пути '''all/sender/includes'''. '''$access_time_max''' - переменная, которая задает указанный лимит. По умолчанию это 2 секунды. | ||
== Модули == | == Модули == | ||
Строка 97: | Строка 100: | ||
Русскоязычные (и другие языки) имена разделов находятся в файле '''locale_data.php''' по пути '''register_demo/sender/locale'''. | Русскоязычные (и другие языки) имена разделов находятся в файле '''locale_data.php''' по пути '''register_demo/sender/locale'''. | ||
− | == Роли (статусы пользователей) | + | == Роли (статусы пользователей) == |
Первый пользователь, который зарегистрируется в системе будет иметь роль (статус) '''root''', а все последующие - '''user'''. Раздела, которые будут видны пользователем того или иного статуса можно корректировать в массиве '''modules_list''' в конфигурационном файле '''settings.php''' (архив '''register_demo.zip'''). В этом же массиве можно указать какие модули доступны для пользователя. | Первый пользователь, который зарегистрируется в системе будет иметь роль (статус) '''root''', а все последующие - '''user'''. Раздела, которые будут видны пользователем того или иного статуса можно корректировать в массиве '''modules_list''' в конфигурационном файле '''settings.php''' (архив '''register_demo.zip'''). В этом же массиве можно указать какие модули доступны для пользователя. | ||
Строка 115: | Строка 118: | ||
[[Файл:Sendmanager modile registration.png|400px|thumb|center|]] | [[Файл:Sendmanager modile registration.png|400px|thumb|center|]] | ||
− | Файлы бота можно скачать по ссылкам выше. | + | Файлы бота можно скачать по ссылкам выше. Их необходимо импортировать в настройках Вашего бота в редакторе. |
+ | |||
+ | О создании бота можно прочитать '''[[Заглавная_страница|тут]]'''. | ||
+ | |||
+ | О том как импортировать структуру бота можно ознакомиться '''[[Импорт ботов|тут]]'''. | ||
− | + | '''Важно''': После импорта в командах бота пути к генерации кода и восстановления пароля на пути к вашим скриптам. | |
'''Следует иметь ввиду, что при необходимости система дописывается до работы с подтверждением через СМС или Email'''. | '''Следует иметь ввиду, что при необходимости система дописывается до работы с подтверждением через СМС или Email'''. | ||
Строка 133: | Строка 140: | ||
[[Файл:Sendmanager 404.png|400px|thumb|center|]] | [[Файл:Sendmanager 404.png|400px|thumb|center|]] | ||
− | == Страница 401 (Доступ закрыт) | + | == Страница 401 (Доступ закрыт) == |
В случае если запрашиваемый пользователем модуль закрыт для пользователей его статуса система выдаст страницу модуля '''401''' (который и отвечает за это). На самом деле даже радел '''404''', содержимое которого выдается в случае несуществующей страницы (как и любой модуль, хранящийся в '''register_demo/sender/modules''') может при необходимости быть закрыт для пользователя. | В случае если запрашиваемый пользователем модуль закрыт для пользователей его статуса система выдаст страницу модуля '''401''' (который и отвечает за это). На самом деле даже радел '''404''', содержимое которого выдается в случае несуществующей страницы (как и любой модуль, хранящийся в '''register_demo/sender/modules''') может при необходимости быть закрыт для пользователя. | ||
Строка 145: | Строка 152: | ||
== Версия == | == Версия == | ||
− | Текущая версия библиотеки '''1.1. | + | Текущая версия библиотеки '''1.1.2''' |
Текущая версия на 12:49, 9 мая 2018
Содержание
Демо регистрации через бота telegram
Проект Ebot.one представляет мини-фреймворк с использованием регистрации через бота telegram.
- Демо фреймворка.
- Рабочий проект с использованием фреймворка.
Данный набор файлов (скачать можно по ссылкам ниже) имеет смысл использовать в качестве основы для проекта если:
- В вашей системе (например, сайте) будет регистрация пользователей.
- Нужно свести к минимуму возможность одним пользователем завести несколько аккаунтов.
- Механизм подтверждения уникальности пользователя должен быть бюджетным (сообщение от бота telegram бюджетнее смс).
- Будущая система должна поддерживать более одной языковой версии.
- Будущая система будет иметь как минимум разделение на пользователей и администраторов.
- Необходимо будет добавлять разделы.
- Необходимо чтобы была настройка какие разделы видны, а какие доступны для того или иного типа пользователя системы.
Вид десктоп версии:
Вид мобильной версии:
Данныая версия примера использует фреймфорк bootstrap, что дает системе адаптивность и возможность быстро поменять визуальную составляющую проекта, поскольку bootstrap достаточно прост в освоении, но Вам не составит труда заменить участки кода bootstrap на свои. bootstrap подключен в файле index.php (архив register_demo.zip)
Файлы
Файлы web-интерфейса регистратора:
register_demo.zip (1504 Kb)
Файл дампа базы:
sender_users.sql.zip (2 Kb)
Экспорт бота для генерации кода при регистрации нового пользователя:
export_2018-04-23_20-31-45.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;
Конфигурационные файлы
Конфигурационный файл 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 - подключение к базе данных
В механизме реализована проверка на частоту обращения к скриптам, которые могут представлять потенциальный интерес для взлома. Если пользователь пытается обратиться к скрипту чаще чем указано в настройках получит сообщение с предложением повторить запрос позже. Настройка этого лимита находится в файле time_access_inc.php по пути all/sender/includes. $access_time_max - переменная, которая задает указанный лимит. По умолчанию это 2 секунды.
Модули
Модули (разделы) задаются в конфигурационном файле 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 и в поле hash писала нужный Вам код.
- поменять текст, говорящий, что генерация кода производится ботом. Сделать это можно в файле 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. При необходимости файлы можно настроить на работу через ЧПУ, для чего необходимо произвести соответствующие изменения в указанной функции.
Версия
Текущая версия библиотеки 1.1.2