0

当我在swagger中使用我的api登录并在弹出的授权按钮中填写信息时,我的受保护的api列表仍然没有出现。

我尝试将其添加为“不记名令牌”,但它不起作用。

以下是我的代码:

SWAGGER_SETTINGS = {
 'LOGIN_URL': 'api:login',
 'LOGOUT_URL': 'api:logout',
 'USE_SESSION_AUTH': False,
 'DOC_EXPANSION': 'list',
 'APIS_SORTER': 'alpha',
 'SECURITY_DEFINITIONS': {
     'api_key': {
         'type': 'apiKey',
         'in': 'header',
         'name': 'Authorization',
         "description": "JWT authorization"
     }
 },
}


'DEFAULT_AUTHENTICATION_CLASSES': [
    'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
],

# Permission settings
'DEFAULT_PERMISSION_CLASSES': [
    'rest_framework.permissions.IsAuthenticated',
],

我正在使用 django-rest-swagger==2.2.0。它适用于招摇 2.1.2

4

2 回答 2

0

我遇到了类似的问题,Django swagger,它不适用于受保护的(令牌认证)API,请改用 drf-yasf,具有相同的配置,请遵循下面的墨水

https://github.com/axnsan12/drf-yasg
于 2019-08-23T12:33:48.450 回答
0

在您的根 urls.py 中


schema_view = get_schema_view(
openapi.Info(
  x,
  y,
  z,
  ),
public=True,
permission_classes=(permissions.AllowAny,),
)

您应该检查它是否已permission_classes 设置为 AllowAny!或者您只是忘记添加它们!

ps 为时已晚,但也许可以帮助其他人!

于 2021-09-04T13:19:18.227 回答