7

在我的 api 中,默认权限类是“rest_framework.permissions.IsAuthenticated”,而 django swagger 没有显示任何 url 的文档。

我的 REST_FRAMEWORK 设置是:

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',),

    'DEFAULT_AUTHENTICATION_CLASSES': (
         'rest_framework.authentication.TokenAuthentication',
    )
}

我的 swagger_settings 是:

SWAGGER_SETTINGS = {
    'USE_SESSION_AUTH': False,
    'SECURITY_DEFINITIONS': {
        'api_key': {
            'type': 'apiKey',
            'in': 'header',
            'name': 'Authorization'
        }
    },

那么如何在 django swagger 中显示经过身份验证的端点。

4

1 回答 1

1

这个话题实际上在 GitHub 上引起了很大的讨论。似乎您正在尝试访问具有IsAuthenticated权限类的视图,如果您尚未经过身份验证,它们可能会被禁止。

您可以添加rest_framework.authentication.SessionAuthentication您的 DRF 设置,以便通过 Swagger 访问这些端点:

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',),

    'DEFAULT_AUTHENTICATION_CLASSES': (
         'rest_framework.authentication.TokenAuthentication',
         'rest_framework.authentication.SessionAuthentication
    )
}
于 2019-05-12T08:26:07.197 回答