Flask-Restx & Swagger 授权在 Header 中发送不正确的令牌
Flask-Restx & Swagger Authorizations Sending Incorrect Token in Header
我有一个使用 Flask-Restx 和 JWT 令牌身份验证的 Flask REST API,并且正在使用 postman 进行调用。但是,当我尝试使用 swagger 时,发送的令牌不是我通过界面输入的令牌。我的代码如下所示:
blueprint = Blueprint('api_bp', __name__, url_prefix='/api/1')
authorizations = {
'api_key' : {
'type' : 'apiKey',
'in' : 'header',
'name' : 'x-access-token'
}
}
api = Api(blueprint,
authorizations=authorizations,
title='My Title',
version='1.0',
security='api_key'
)
from timesheets.views.api_bp import api as ns1
np = api.namespace('index', description='Index API')
def token_required(f):
@wraps(f)
def decorated(*args, **kwargs):
...
@np.route('/users')
class Users(Resource):
@api.doc(security='api_key')
@token_required
def get(self, current_user):
...
return jsonify({'user' : output})
然后在 swagger 页面上,我可以输入我的身份验证令牌:
当我“试一试”时,我可以看到正确的 x-access-token 被放置在 curl 调用中。
但是如果我查看我的请求 headers,每次我都收到相同的 x-access-token 发送到我的服务器:
那么,这个令牌是从哪里生成的?我如何确保我只使用我通过界面传递的令牌?
查看返回的是同一个key,在代码中发现输入的值被我之前引入的测试数据覆盖了
我有一个使用 Flask-Restx 和 JWT 令牌身份验证的 Flask REST API,并且正在使用 postman 进行调用。但是,当我尝试使用 swagger 时,发送的令牌不是我通过界面输入的令牌。我的代码如下所示:
blueprint = Blueprint('api_bp', __name__, url_prefix='/api/1')
authorizations = {
'api_key' : {
'type' : 'apiKey',
'in' : 'header',
'name' : 'x-access-token'
}
}
api = Api(blueprint,
authorizations=authorizations,
title='My Title',
version='1.0',
security='api_key'
)
from timesheets.views.api_bp import api as ns1
np = api.namespace('index', description='Index API')
def token_required(f):
@wraps(f)
def decorated(*args, **kwargs):
...
@np.route('/users')
class Users(Resource):
@api.doc(security='api_key')
@token_required
def get(self, current_user):
...
return jsonify({'user' : output})
然后在 swagger 页面上,我可以输入我的身份验证令牌:
当我“试一试”时,我可以看到正确的 x-access-token 被放置在 curl 调用中。
但是如果我查看我的请求 headers,每次我都收到相同的 x-access-token 发送到我的服务器:
那么,这个令牌是从哪里生成的?我如何确保我只使用我通过界面传递的令牌?
查看返回的是同一个key,在代码中发现输入的值被我之前引入的测试数据覆盖了