python - Flask Rest API - 如何在 python 请求中使用 Bearer API 令牌
问题描述
我在 Flask 中开发了一个 API 并使用基本身份验证令牌。当我用 curl 测试这个 API 时,承载令牌被接受并且 API 正在工作。但是在 python 请求中使用时,它显示 401 错误。
用于 Flask API 的 Python 代码:
@app.route('/api/resource')
@auth.login_required
def get_resource():
return
jsonify({'data': '你好,%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!"}
使用 API 的 Python 代码:
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
如何使用来自 Python 或邮递员的 curl 中使用的 Bearer 令牌?
提前致谢!
解决方案
如果您希望我们使用 Bearer 令牌,请查看 Miguel Grinberg 的应用程序编程接口并向下滚动到“用户模型中的令牌”。然而,整件事值得一读。
另一篇文章是 Real Pythons 的Flask 基于令牌的身份验证。
这两者都将有助于理解和实施不记名令牌。
推荐阅读
- python - 用python beautiful soup从h1和id中提取文本
- excel - 将多个 Excel 文件合并到一个工作簿时出错
- java - 如何使用 Apache POIFS/HSMF 更改 Outlook .msg 文件的附件
- java - 为什么将休眠查询结果传递给 toJson 方法时会出错?
- google-cloud-platform - 适用于 Compute Engine 的 GCP API 网关
- reactjs - 如何在 React 的辅助函数中使用状态?
- reactjs - React JS Axios 地图
- python - 2021年用python发邮件最方便的方法是什么?
- haproxy-ingress - 自定义 TCP 端口的 TCP 白名单在 haproxy 入口中不起作用
- python - 在 python 中使用 range 关键字遍历列表和使用其他变量之间有区别吗?