如何在 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
我正在尝试在调用端点时访问授权值。 首先,我添加了以下在 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