如何使用密码保护swagger文档

4

我正在构建一个 Flask 应用程序,并需要在生产环境中为 Swagger 文档添加密码,但我不知道如何做。这是我的代码:

api = Api(
    version='1.0',
    title='API',
    description='Main API',
    doc='/doc',
    authorizations=authorizations)
...
api.init_app(app)

这份文档不应该公开给所有人看,对吧?但我找不到添加密码的方法。有什么建议吗?


要求 SSO 以保护终端点。 - AK47
@AK47 是的,例如我可以使用HTTP基本身份验证,但不知道如何使用。 - Ali Kompany
1
API本身肯定需要保护,如果没有保护,那就是你的首要任务。我认为你不一定需要保护API文档 - 除非你认为它是一个特别特殊的设计并且构成知识产权,或者你担心API实际上可能不安全(在这种情况下,你希望通过混淆来保证安全性)。 - eddiewould
1个回答

3

我知道已经很晚了,但还是想说。

class MyApi(Api):
    def render_doc(self):
        view = super().render_doc()
        if current_user.is_authenticated and current_user.has_role('admin'):
            return view
        return redirect(url_for('security.login', next=request.url))

您需要修改此方法,该方法返回结束视图函数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接