如何向 eve_swagger 提供的路由添加身份验证?

How do you add auth to the routes provided by eve_swagger?

我在项目中使用 eve_swagger (https://github.com/pyeve/eve-swagger),它非常适合生成 swagger 文档。我有一个用例,我需要让在库中创建为路由的默认 /api-docs 端点需要身份验证。

当我创建我的 eve 应用程序时,我将 auth 参数设置为我的身份验证 class,但是 /api-docs 端点是使用蓝图创建的,我不是确定如何向此端点添加身份验证。有什么想法吗?

我的前夕* 部门:

eve = "~0.7"
eve_sqlalchemy = "~0.7"
eve_swagger = "^0.0.11"

谢谢!

我找到了一种方法,但不确定这是否是 best/right 方法。

我拿了提供的eve_swagger蓝图,加了一个before_request授权功能。东西 "like" 这个:

import eve_swagger
from flask import current_app as app

def authorize_swagger:
    # my auth logic

eve_swagger.swagger.before_request(authorize_swagger)
app.register_blueprint(eve_swagger.swagger)

这样做的结果是现在当我调用默认 /api-docs 路由时,我的授权函数在请求之前被调用和处理。这样,如果我的函数决定请求未被授权,它可以停止请求。