如何在 python 2.7 中使用 flask 访问授权 header 值?

How do I access authorization header value using flask in python 2.7?

我正在尝试在调用端点时访问授权值。 首先,我添加了以下在 Swagger 中显示为字段的参数。

parser.add_argument('Authorization', type=str, required=True,
                help='A base-64 string in format "Basic username:password"', location='headers')

资源定义如下:

from flask import request
parser.add_argument('Authorization', type=str, required=True,
                help='A base-64 string in format "Basic username:password"', location='headers')
@api.route("/authentication/")
@api.expect(parser)
class TestResource(Resource):
    @api.marshal_with(set_test_model)
    def post(self):
        
        val = request.authorization['username']
        if val is None:
            abort(400, 'Username is none')

不幸的是,我收到一条错误消息:

val= request.authorization["username"]
TypeError: 'NoneType' object has no attribute '__getitem__'

使用 Fiddler 观察流量显示调用中有授权 header。 它告诉我以下内容:

AUTHORIZATION Header is present: Basic dGVzdDp0ZXN0
Decoded Username:Password= test:test

尽管 Fiddler 确实识别 header,但我似乎无法在 python 中捕捉到它。 request.headers 也不包含密钥“授权”。有谁知道我如何使用烧瓶获得授权值?

问题是我们 运行 在不支持授权安全性 header 的旧版本的 apache 服务器中。这就是为什么我从未在 python.

中获得任何授权 header