我使用drf-yasg来生成开放的API,我想要的是一旦我添加了认证令牌,它应该是持久的,当用户刷新页面时不应该过期。目前,如果用户刷新页面,令牌就会丢失,用户需要在任何一次更改后再次输入令牌。
wnavrhmk1#
使用drf-yasg时,您可以在 settings.py 中配置SWAGGER_SETTINGS中的设置。将'PERSIST_AUTH': True添加到SWAGGER_SETTINGS中即可。
drf-yasg
SWAGGER_SETTINGS
'PERSIST_AUTH': True
f5emj3cl2#
不知道这是否是问题的答案,但我一直在寻找和你一样的东西,直到我弄明白了这一点。我想做的是隐藏需要认证的API端点,当用户认证时,它们会显示出来。我想持久化认证,然后用户必须手动刷新页面才能工作。不过,drf-yasg中有一个名为REFETCH_SCHEMA_WITH_AUTH的设置。这会在执行授权时自动刷新页面。也就是说,您不必手动刷新页面。默认情况下,此设置设置为False,由于某种原因,如果您不知道要查找的内容,则很难找到它。我在settings.py中为我的django-project设置的swagger现在看起来像这样:
settings.py
SWAGGER_SETTINGS = { "USE_SESSION_AUTH": True, "SECURITY_DEFINITIONS": { "Basic": {"type": "basic"}, "api_key": {"type": "apiKey", "name": "authorization", "in": "header"}, }, "REFETCH_SCHEMA_WITH_AUTH": True, }
字符串我认为这是一个比坚持授权更安全的解决方案,因为它可能会导致安全问题。
2条答案
按热度按时间wnavrhmk1#
使用
drf-yasg
时,您可以在 settings.py 中配置SWAGGER_SETTINGS
中的设置。将'PERSIST_AUTH': True
添加到SWAGGER_SETTINGS
中即可。f5emj3cl2#
不知道这是否是问题的答案,但我一直在寻找和你一样的东西,直到我弄明白了这一点。
我想做的是隐藏需要认证的API端点,当用户认证时,它们会显示出来。我想持久化认证,然后用户必须手动刷新页面才能工作。
不过,drf-yasg中有一个名为REFETCH_SCHEMA_WITH_AUTH的设置。这会在执行授权时自动刷新页面。也就是说,您不必手动刷新页面。默认情况下,此设置设置为False,由于某种原因,如果您不知道要查找的内容,则很难找到它。
我在
settings.py
中为我的django-project设置的swagger现在看起来像这样:字符串
我认为这是一个比坚持授权更安全的解决方案,因为它可能会导致安全问题。