Amazon «Войти через Amazon» работает в браузере или почтальоне, но не через cUrl или python - PullRequest
0 голосов
/ 07 августа 2020

Я подробно описал проблему здесь: https://github.com/python-social-auth/social-core/issues/497

И я скопирую это здесь. Полный контекст заключается в том, что у меня возник сбой с серверным поставщиком Amazon для Django сторонней библиотеки python -social-auth.

(https://python-social-auth.readthedocs.io/en/latest/backends/amazon.html)

Специфический контекст c, однако, не имеет отношения к основной проблеме, которая заключается в том, что Amazon не выполняет запросы без User-Agent в заголовке.

Ожидаемое поведение

Аутентификация в Amazon должна работать так же, как и любой другой сервер, такой как Facebook или Google. В частности звонок на https://www.amazon.com/ap/user/profile? должен вернуть ответ: https://github.com/python-social-auth/social-core/blob/master/social_core/backends/amazon.py#L37

Войти через Amazon

Фактическое поведение

( Даже за пределами python -social-auth / social-core) при отправке запроса на https://www.amazon.com/ap/user/profile запросы не выполняются из кода python или команд cUrl, в то время как они преуспевают из Postman или Web браузеры.

Добавление «User-Agent» к заголовкам в cUrl или python устраняет эту проблему, так что я могу запросить данные профиля и получить успешный ответ.

Что такое шаги по воспроизведению этой проблемы?

Если у вас есть действительный access_token от Amazon

, вы можете попробовать это с заголовком user-Agent и без него:

import requests

url_str= 'https://www.amazon.com/ap/user/profile?access_token=<your-access-token>'

headers = {    
    'User-Agent': 'Mozilla'
    }

response = requests.request("GET", url=url_str, headers=headers)

print(response.text)

Есть другие комментарии?

Это похоже на проблему с Amazon, но кто знает, решат ли они это или нет. Я не уверен, куда направить эту проблему на их сторону.

...