Всем привет. Недавно дошли руки допилить python утилиту, создающую QR для авторизации в Steam и получения accessToken и refreshToken. Основные токены для работы с API Steam. Получаемые параметры: 1) SteamID 2) login 3) AccessToken 4) RefreshToken 5) Cookies Так-же реализованы вспомогательные функции: 1) Обновление AccessToken по refreshToken 2) Обновление refreshToken по refreshToken (при успешном обновлении обновляется не только refreshToken, но и accessToken, и помните, что старый refreshToken перестанет действовать, даже если срок его действия еще не истек) Быстрое начало. Для начала нужно установить node.js LTS версию. После установки проверьте версии с помощью следующих команд в командной строке: node -v npm -v Code node -v npm -v Далее копируйте репозиторий: git clone https://github.com/Aarab228/steam-QRauth Code git clone https://github.com/Aarab228/steam-QRauth Инициализируйте проект: npm init -y Code npm init -y Установите зависимости: npm install express steam-session pkg uuid pip install -r requirements.txt Code npm install express steam-session pkg uuid pip install -r requirements.txt В своем проекте реализуйте следующий код: # -*- coding=utf-8 -*- from client import ServerAPIClient, ServerRunner def main(): runner = ServerRunner() server_process = runner.run_node_server() client = ServerAPIClient() try: auth = client.get_auth_credentials() except Exception as e: print(f"Error: {e}") finally: runner.stop_server() Python # -*- coding=utf-8 -*- from client import ServerAPIClient, ServerRunner def main(): runner = ServerRunner() server_process = runner.run_node_server() client = ServerAPIClient() try: auth = client.get_auth_credentials() except Exception as e: print(f"Error: {e}") finally: runner.stop_server() Он автоматически запустит сервер в качестве фонового процесса и покажет QR для авторизации. Все данные будут отображены на экране, а куки будут сохранены в файле cookies.json. Если по какой-то причине вы не успели авторизоваться в течение 2 минут, QR автоматически сгенерирует новый. Если вы хотите, чтобы это был файл .exe, сделайте следующее. Установите Pyinstaller pip install pyinstaller Python pip install pyinstaller Откройте cmd в рабочей области (папке проекта) и запустите: pkg server.js --targets node16-win-x64 --output server.exe Python pkg server.js --targets node16-win-x64 --output server.exe ! Помните, если у рабочей области есть виртуальная среда, сначала активируйте виртуальную среду ! После создания сервера server.exe выполните: pyinstaller --onefile --add-data “server.exe;.” client.py Python pyinstaller --onefile --add-data “server.exe;.” client.py где client.py - имя вашего файла ПОМНИТЕ! Файл server.exe и client.exe должны ВСЕГДА находиться в одном и том же месте! Далее просто запустите client.exe и используется по своим нуждам! Пример работы:
derkown, с какой-то стороны легче. Но например для меня было легче написать отдельный сервак на node.js и сделать по типу `API` прослойки чтобы использовать данные на python в своем проекте. Так как данной информацией со мной не делились другие разработчики подобного, решил сделать отдельный репозиторий