Задать вопрос
  • Как настроить авторизацию в telegram боте?

    @jtores Автор вопроса
    Михаил Р., написал что-то типо этого:
    # Имя файла для хранения учетных записей
    ACCOUNTS_FILE = 'accounts.txt'
    
    def read_accounts():
        accounts = {}
        try:
            with open(ACCOUNTS_FILE, 'r') as file:
                lines = file.readlines()
                for line in lines:
                    username, password = line.strip().split(':')
                    accounts[username] = password
        except:
            pass
        return accounts
    
    def write_account(username, password):
        with open(ACCOUNTS_FILE, 'a') as file:
            file.write(f'{username}:{password}\n')
    
    @tb.message_handler(commands=['start', 'go'])
    def start_handler(message):
        msg = tb.send_message(message.chat.id, "Привет, отправь логин и пароль в формате 'логин пароль'")
        tb.register_next_step_handler(msg, auth)
    
    def auth(message):
        data = message.text.split()  # создаем список ['логин', 'пароль']
        if len(data) != 2:
            tb.send_message(message.chat.id, 'Неправильный формат. Попробуйте снова, используя формат "логин пароль"')
            return
        
        username, password = data
        accounts = read_accounts()
        
        if username not in accounts or accounts[username] != password:
            tb.send_message(message.chat.id, 'Неправильно введен логин или пароль')
        else:
            msg = tb.send_message(message.chat.id, 'Что будем делать?')
            tb.register_next_step_handler(msg, next_step_func)
    
    @tb.message_handler(commands=['reg'])
    def register_handler(message):
        msg = tb.send_message(message.chat.id, "Для регистрации отправьте 'логин пароль'")
        tb.register_next_step_handler(msg, register)
    
    def register(message):
        data = message.text.split()
        if len(data) != 2:
            tb.send_message(message.chat.id, 'Неправильный формат. Попробуйте снова, используя формат "логин пароль"')
            return
        
        username, password = data
        accounts = read_accounts()
        
        if username in accounts:
            tb.send_message(message.chat.id, 'Этот логин уже занят. Попробуйте другой.')
        else:
            write_account(username, password)
            tb.send_message(message.chat.id, 'Вы успешно зарегистрированы!')
    
    def next_step_func(message):
        # Здесь можно добавить логику для следующих шагов
        tb.send_message(message.chat.id, 'Вы вошли в систему!')

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