swagger drf-yasg -如何自定义持久认证令牌?

nc1teljy  于 2024-01-07  发布在  其他
关注(0)|答案(2)|浏览(124)

我使用drf-yasg来生成开放的API,我想要的是一旦我添加了认证令牌,它应该是持久的,当用户刷新页面时不应该过期。目前,如果用户刷新页面,令牌就会丢失,用户需要在任何一次更改后再次输入令牌。

wnavrhmk

wnavrhmk1#

使用drf-yasg时,您可以在 settings.py 中配置SWAGGER_SETTINGS中的设置。将'PERSIST_AUTH': True添加到SWAGGER_SETTINGS中即可。

f5emj3cl

f5emj3cl2#

不知道这是否是问题的答案,但我一直在寻找和你一样的东西,直到我弄明白了这一点。
我想做的是隐藏需要认证的API端点,当用户认证时,它们会显示出来。我想持久化认证,然后用户必须手动刷新页面才能工作。
不过,drf-yasg中有一个名为REFETCH_SCHEMA_WITH_AUTH的设置。这会在执行授权时自动刷新页面。也就是说,您不必手动刷新页面。默认情况下,此设置设置为False,由于某种原因,如果您不知道要查找的内容,则很难找到它。
我在settings.py中为我的django-project设置的swagger现在看起来像这样:

SWAGGER_SETTINGS = {
    "USE_SESSION_AUTH": True,
    "SECURITY_DEFINITIONS": {
        "Basic": {"type": "basic"},
        "api_key": {"type": "apiKey", "name": "authorization", "in": "header"},
    },
    "REFETCH_SCHEMA_WITH_AUTH": True,
}

字符串
我认为这是一个比坚持授权更安全的解决方案,因为它可能会导致安全问题。

相关问题