Alw*_*mer 5 token flask flask-restplus
我正在尝试在 Flask-restplus 应用程序中设置身份验证。我想向应用程序中的所有端点添加身份验证,但不想在每个路由上编写装饰器。
我正在寻找基于 apikey 的身份验证。问题是,我无法确定如何拦截所有请求并检查标头中的身份验证令牌。
当前代码:
authorization = {
'apikey': {
'type': 'apiKey',
'in': 'header',
'name': 'x-auth'
}
}
api = Api(
title='title',
version='1.0',
description="List of API's ",
validate=True,
authorizations=authorization,
security='apikey'
)
Run Code Online (Sandbox Code Playgroud)
完成上述步骤后,当我打开 swagger 时,我可以使用授权按钮添加令牌。但是一旦令牌被传递,我就无法拦截请求并验证令牌是否正确。
目前,我能找到的所有示例都在每条路线上添加了另一个装饰器,这是我不想要的,因为它会导致糟糕的设计和重复的代码。
目前我得到的最接近的例子是:
https://www.youtube.com/watch?v=
xF30i_A6cRw&list=LLpaDwEA6bAAPZU5lz0ZRsuw&index=1,但它还在每条路线上使用装饰器。
所以问题陈述是:
如何拦截所有请求并检查标头中的正确令牌,而不在所有路由上添加装饰器
小智 0
最近,我遇到了类似的问题。但幸运的是,我们确实有接受装饰器列表的命名空间,您可以在资源级别传递自定义装饰器,并且默认情况下它将实现该资源的每个方法。
api = Namespace(
'some Name here',
description='some description',
security='apiKey',
authorizations = authorizations,
decorators= [token_required]
)
Run Code Online (Sandbox Code Playgroud)
但需要注意的一点是,我必须在方法中指定每个文档的安全性,如下所示:
@api.doc('some operation', security = 'apiKey')
Run Code Online (Sandbox Code Playgroud)
这样做的好处是一键授权流向资源中的每个方法。
| 归档时间: |
|
| 查看次数: |
2589 次 |
| 最近记录: |