Как отправить base64 в headers

Задача: передать пользовательские данные к API. Для того чтобы это сделать, мне нужно в headers передать заголовок Authorization со значением login:password в зашифрованном Base64 RFC2045-MIME варианте.

import requests
import pybase64
login = input("Логин: ")
passwd = input("Пароль: ")
login1 = pybase64.b64encode(login.encode())
passwd2 = pybase64.b64encode(passwd.encode())
toheaders = login1,":",passwd2,
print(toheaders)

Если логин будет 1 , а пароль 2 при вводе, то данные на выводе будут: (b'MQ==', ':', b'Mg==')

То есть проблема в том, я не понимаю как мне нужно сделать, чтобы у меня выводилось просто одной строкой в формате логин:пароль. Если я в headers передам текущее значение переменной toheaders , то у меня естественно вылезет ошибка авторизации, так как он увидит и символы b', кавычки и т.д.

Вопрос номер 2:

Мне необходимо в headers передать не строку, а значение из переменой toheaders, как это правильно сделать? Сервер принимает это так: basic и логин пароль в зашифрованном виде. Как вписать этот формат в заголовок?

headers = {"Authorization" : "basic"}
response = requests.get("https://online.moysklad.ru/api/remap/1.1/report/dashboard/day", headers=headers)
    
if response.status_code == 401:
    print ("Авторизация не прошла")
if response.ok:
    print (response)
print (response.text)

Ответы (2 шт):

Автор решения: cauf

По вопросу 1:

toheaders = f'{login1.decode("utf-8")}:{passwd2.decode("utf-8")}'

Вам необходимо перевести байт-строки в обычные строки, после чего сконкатенировать (ну или интерполировать, как у меня в блоке кода)

→ Ссылка
Автор решения: Артем Кваша

Тоже озадачился. Официальная документация "Мой склад API" очень не информативна. Задал вопрос ChatGPT. Вот рабочий пример:

import requests
from requests.auth import HTTPBasicAuth
import pprint

login = '*******'
password = '********'
api_method = 'entity/invoiceout/*id счета*'
endpoint = 'https://online.moysklad.ru/api/remap/1.2/'

# Создание объекта HTTPBasicAuth с логином и паролем
auth = HTTPBasicAuth(login, password)

# Создание заголовков запроса
headers = {
    'X-Lognex-Format-Millisecond': 'true',
    'X-Lognex-WebHook-Disable': 'true'
}

# Отправка GET-запроса
response = requests.get(endpoint + api_method, auth=auth, headers=headers)

# Проверка статуса ответа
if response.status_code == 200:
    # Доступ к данным из ответа
    data = response.json()
    pprint.pprint(data)
else:
    print('Произошла ошибка при выполнении запроса.')
→ Ссылка