Отправка запроса на вход в Steam openid для перенаправления на указанный сторонний веб-адрес возвращает другое значение заголовка ответа 'location', чем ожидалось - PullRequest
0 голосов
/ 25 мая 2020

Я работаю над python скриптом, который выполняет вход на сторонний веб-сайт, использующий Steam openid. Изучая коммуникацию, задействованную в сети, я заметил, что делается запрос, в котором он перенаправляет браузер на URL-адрес. Я пытаюсь воспроизвести это с помощью библиотеки запросов python. Ниже приведен фрагмент кода python,

form_params = {
'action': 'steam_openid_login',
'openid.mode': 'checkid_setup',
'openidparams': '<openidparamsKey>',
'nonce': steamCookies['sessionidSecureOpenIDNonce']
}

response = requests.post('https://steamcommunity.com/openid/login', allow_redirects=False, headers={
'Connection': 'keep-alive',
'Cache-Control': 'max-age=0',
'Origin': 'https://steamcommunity.com',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Mode': 'navigate',
'Referer': 'https://steamcommunity.com/openid/login?openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.return_to=https%3A%2F%2Fwww.targetSite.com%2Fauth%2Freturn&openid.realm=https%3A%2F%2Fwww.targetSite.com%2F',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-US,en;q=0.9,tr;q=0.8',
}, cookies=steamCookies , files = form_params)

. Ожидается, что от почтового запроса будет получен заголовок ответа «местоположение», включающий такой URL-адрес, что

https://www.targetSite.com/auth/return?openid.ns=http%3A%2F%2Fsp....

Вместо этого заголовок ответа на мой почтовый запрос по-прежнему возвращает следующее, даже после исправления реализации данных формы:

>>> response.headers['location']
'https://steamcommunity.com

Я не очень уверен, в чем может быть причина. Мои файлы cookie и заголовок ссылки в порядке! Что еще могло потенциально вызвать это? Я проверял похожие вопросы на stackoveflow и других форумах. Однако я не смог найти решение этой проблемы.

...