Я разработал API во Flask и использую токен базовой аутентификации. Когда я тестирую этот API с помощью curl, токен на предъявителя принимается и API работает. Но при использовании в запросах Python выдает ошибку 401.
Код Python, используемый для Flask API:
@app.route('/api/resource')
@auth.login_required
def get_resource():
return
jsonify ({'data': 'Hello,% s!'% G.user.username.title ()})
Тестирование с помощью curl работает нормально:
>
curl -u eyJhbGciOiJIUzI1NsdfCI6MTUzMDc5MDIzNCwiZXhwIjoxNT
MwNzkwODM0fQ.eyJpZCsf.jKiafmv-qrvAxVo7UKQuohS2vkF-9scpuqsKRuw:sp -i -X GET
http://127.0.0.1:5000/api/resource
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 32
Server: Werkzeug/0.14.1 Python/3.6.4
Date: Thu, 05 Jul 2018 11:33:22 GMT
{ "data": "Hello, FlaskAPI!"}
Python-код для использования API:
import requests
url = "http://127.0.0.1:5000/api/resource"
headers = {
'Content-Type': "application/json",
'Authorization': "Bearer eyJhbGciOiJIUzI1NiIsImlhsfsdfsdzNCwiZXhwIjoxNTMwNzksdfsdsdRF.eyJpZCI6MX0.YhZvjKiafmv-qrvAxVo7UKQuohS2vkF-9scpuqsKRuw"
}
response = requests.request("GET", url, headers=headers)
print(response.text)
Показывает ошибку:
Несанкционированный доступ 401
Как использовать токен на предъявителя, используемый в curl из Python или почтальона?
Заранее спасибо!