В общем, имеется такой бот “Blum” и при запуске mini app в network имеется post запрос /auth/refresh, он возвращает refresh токен и обычный токен для авторизации, в параметрах передается также токен для генерации актуального. Вопрос мой такой, как вытащить токен чтобы кидать запросы на auth/refresh и получать обычный токен для дальнейших api? Полазил я у них в коде и это треш. Код минифицирован. Кто-то разбирался с таким?
Сам токен генерируется на фронте, скорее всего какие-то он данные подтягивает или сам телеграмм дает уже токен.
Что я придумал? Открой код и глянь. В параметры пост запроса auth/refresh передается токен, а в ответ ты уже получаешь реальный токен, который уже подставляется в заголовки для запроса
0x80070005, токен мог быть получен при первом вызове приложения и положен в local storage, а следующие попытки запуска приложения просто забирают его из local storage и сервер не опрашивают.
Естественно, его могут обфусцировать, чтобы было непросто найти.
0x80070005, этот токен он получил чуть раньше от сервера при авторизации, лол. Возможно он лежит в каком-то сторадже и потому оно сходу не требует авторизции, если тот не протух.
Нет, теоретически какой-то супермзг мог и захардкодить какой-нить вечный токен, но это очень врядли, т.к. бессмыслено ломает все стандарты и библиотеки.
Aetae, но в localstorage я ничего не нашел. не в телеграмме и не в блуме, но то что он его достает из localstorage - факт. Надо как-то его достать мне :д
0x80070005, возможно токен там и есть, просто называется как-нибудь неочевидно и возможно хранится не в окончательном виде, а, допустим, как base64 реального, или c перестановкой символов, или разбитым на части в разных ключах... Всё ради того, чтобы в глаза не бросалось и нельзя было легко найти.
Для правильного вопроса надо знать половину ответа
Токен получается при авторизации на сервере gateway.blum.codes
Данные для авторизации берутся с сервера telegram.blum.codes
Смотрите исходники бота, функции login и get_tg_web_data https://github.com/VernonDevID/blum/blob/6619ef720...
0x80070005, Сначала идет аутентификация/авторизация, которая по логину/паролю возвращает основной и refresh-токены. Затем, по истечению срока действия основного токена, идёт обновление, которое по refresh-токену возвращает новую пару токенов.