|
6 / 6 / 2
Регистрация: 27.06.2019
Сообщений: 138
|
|
Авторизация паролем к Телеграм боту08.07.2021, 19:06. Показов 10445. Ответов 14
Метки нет (Все метки)
Делаю бота для телеграмма, использую node-telegram-bot-api
Бота создал, в консоли здоровается, написать боту могу, чтобы он мне что-то ответил. Сейчас стоит вопрос, как защитить это паролем. Подскажите, направьте, как это сделать? Пока что просто вопрос о создании функции пароля P.S. К сожалению код не могу предоставить, ввиду малого опыта. Встречал решения на Python и других языках но JS выбрал, т.к. с ним хоть как-то уже работал и решил развиваться дальше.
0
|
|
| 08.07.2021, 19:06 | |
|
Ответы с готовыми решениями:
14
Написать код к телеграм боту Подключение базы данных к Телеграм боту Ограничение к телеграм боту на PHP по паролю или id пользователя |
|
6 / 6 / 2
Регистрация: 27.06.2019
Сообщений: 138
|
|
| 09.07.2021, 18:06 [ТС] | |
|
Я представляю себе это так: пользователь знает имя бота, заходит к нему, бот предлагает ввести пароль, да это все в чате происходит(а где еще может быть?). Ввел пароль - добро пожаловать со веми запроектированными функциями, неправильно, попробуйте еще раз, как-то так.
0
|
|
|
|
|
| 11.07.2021, 02:22 | |
|
Да, ясно.
censured, я это представляю себе следующим образом. В базе данных у нас должна быть таблица, в которой будут храниться пары логин / пароль. Можно взять модель, которая используется для обычной аутентификации на сайте. Только, как я думаю, в поле логин (или email) можно хранить id пользователя в Телеграме. Пусть этот идентификатор и выступает в качестве логина. Далее, бот реагирует на сообщение, парсит его, выделяя пароль — а дальше осуществляется сценарий аутентификации через сравнение полученного пароля с тем, который хранится в базе. Затем нужно как-то запомнить, что в данном чате пользователь авторизован. Оказывается, при разработке на основе telegraf.js мы можем использовать сессии. Но в принципе можно завести ещё одну таблицу, в которой хранить идентификаторы чатов и помечать их как проверенные (в соответствующем поле); наши защищённые функции вызывать всякий раз только после обращения к этой таблице.
0
|
|
|
6 / 6 / 2
Регистрация: 27.06.2019
Сообщений: 138
|
|
| 12.07.2021, 11:52 [ТС] | |
|
А просто паролем нельзя обойтись? хранится 1-2 пароля для условно разных групп доступа, а логин неважен. Или я слишком просто мыслю?
0
|
|
|
411 / 303 / 112
Регистрация: 28.08.2013
Сообщений: 797
|
|
| 12.07.2021, 14:24 | |
|
censured, Вы можете это сделать, вот только зачем? Пользователь общается с ботом в отдельном (не общем) чате. У каждого чата есть свой уникальный chatId (или chat_id, как правильно пишется не помню, давно писал бота). По этому chatId можно идентифицировать пользователя, хранить о нём данные в БД (если надо), и при запросе определять что ему можно, а что нельзя.
1
|
|
|
6 / 6 / 2
Регистрация: 27.06.2019
Сообщений: 138
|
|
| 13.07.2021, 15:09 [ТС] | |
|
Заранее chatid неизвестен и одна из удобных форм мне показалась, когда человек пишет боту, после этого бот спрашивает пароль и разрешает дальше пользоваться функцоналом.
Конечно дальше мысль развивается а как с паролем поступать, он должен протухать или в базе данных чатайди копить тех, кто правильно ввел пароль. Но я пока на первом шаге споткнулся.
0
|
|
|
411 / 303 / 112
Регистрация: 28.08.2013
Сообщений: 797
|
|
| 13.07.2021, 22:46 | |
|
censured, Прочитайте документацию, причём именно Telegram Bot API, а не telegraf.js. В Telegram, chatId - это обязательный параметр, без которого Telegram не будет знать куда пересылать сообщение (данные). И когда пользователь отправляет первое (и послудующие) сообщение боту, в сообщении уже указан chatId.
0
|
|
|
6 / 6 / 2
Регистрация: 27.06.2019
Сообщений: 138
|
||||||
| 15.07.2021, 15:35 [ТС] | ||||||
|
Я понимаю, что это обязательный параметр.
Вот пример кода:
Поэтому исходя из таких данных я хотел добавить функцию пароля(или может есть другие удобные способы авторизации) - или для этого все же нужна некая база?
0
|
||||||
|
411 / 303 / 112
Регистрация: 28.08.2013
Сообщений: 797
|
||
| 15.07.2021, 22:53 | ||
|
Пример. Бот предоставляет платные и бесплатные функции. При оплате ChatId заносится в БД и срок действия отплаченного периода. Если пользователь обращается к платной функции, тогда бот ищет в БД ChatId с не истекшим оплаченным периодом. Если есть такой ChatId и у него оплаченный период не завершён, тогда разрешаем использование платного функционала. В противном случае, просит оплату. Для бесплатного функционала хранить в БД ChatId не имеет смысла, разве что для сбора какой-то статистики. P.S. Я так "прикрутил" к боты PayPal.
0
|
||
|
6 / 6 / 2
Регистрация: 27.06.2019
Сообщений: 138
|
|
| 26.07.2021, 16:36 [ТС] | |
|
Вообщем сейчас тогда задача сводится к тому, что нужно хранить чат айди. Только до сих пор не пойму вот каких моментов?
1) Изначально бот не знает о существовании человека, поэтому предполагался пароль, т.е. это будет маячком для заноса айди в базу? Тогда надо будет один раз ввести пароль для сохранения чат айди? 2) Как контролировать список чат айди? Баны пользователей, протухание пароля и прочее. 3) Почему не работоспособен алгоритм, как я сейчас общаюсь? То есть написал, и если правильный пароль - то можно дальше командовать. Спрашиваю, чтобы понять что плохого, чтобы уже убрать эту мысль "простого пути")
0
|
|
|
411 / 303 / 112
Регистрация: 28.08.2013
Сообщений: 797
|
||||
| 26.07.2021, 18:07 | ||||
|
Добавлено через 10 минут И ещё. Пароль не имеет смысла, так как пароль вводит человек, в начале использования бота. Что если введёт пароль и передаст телефон другому человек или просто скажет/напишет пароль другому человеку. А ChatID (по дефолту человеку неизвестен (но узнать можно (но не вставить в клиент ))).
0
|
||||
|
6 / 6 / 2
Регистрация: 27.06.2019
Сообщений: 138
|
|
| 26.07.2021, 18:14 [ТС] | |
|
Если изначально бот никого не знает, и конечному пользователю нужно уметь добавляться к нему, как это сделать, если чат айди не будет в базе заранее?
0
|
|
|
411 / 303 / 112
Регистрация: 28.08.2013
Сообщений: 797
|
|
| 26.07.2021, 21:19 | |
|
Добавлено через 15 секунд
censured, Есть в БД есть ChatID с действительным оплаченным периодом (к примеру), тогда этому ChatID разрешено использовать платный и бесплатный функционал. Если в БД есть ChatID но с не действительным оплаченным периодом или в БД нет такого ChatID, тогда разрешается только бесплатный функционал.
0
|
|
| 26.07.2021, 21:19 | |
|
Помогаю со студенческими работами здесь
15
Как записать значение в переменную отправив сообщение боту телеграм? Как связаться с API сайта olx.ua или отправлять сообщения из чата сайта телеграм-боту? Что такое авторизация по номеру телефона? (телеграм)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|