我正在使用flask_restplus
和flask_httpauth
构建一个API,用于基于令牌的身份验证。除了一件事,一切都很好。在Swagger UI中,当我尝试执行搜索查询时,我收到错误401。在授权中添加“Bearer”无济于事。请参阅下面的屏幕截图。
有趣的是,复制和粘贴curl
(在Swagger UI中)的输出并从终端运行它确实返回正确的输出。与Postman中运行相同。问题可能在Swagger UI中。有什么建议?
遗憾的是,关于Github的建议对我不起作用。
注意:似乎verify_token(token)
没有收到来自Swagger UI的输入。当我尝试打印token
时,从Swagger调用时它是空的,但是当从curl / Postman调用时显示该值。
部分代码:
authorizations = {
'Bearer Auth': {
'type': 'apiKey',
'in': 'header',
'name': 'Authorization'
},
}
api = Api(blueprint, version='1.0', title='Flask API',
description='My API', security='Bearer Auth', authorizations=authorizations)
@token_auth.verify_token
def verify_token(token):
g.current_user = User.check_token(token) if token else None
return g.current_user is not None