django rest框架autorization返回错误的状态代码

时间:2018-02-07 06:03:53

标签: python django rest django-rest-framework http-status-codes

我是django的新手。我有一个项目,移动设备可以使用令牌与服务器进行交互。在settings.py中我有:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'UPLOADED_FILES_USE_URL': False,

    'DEFAULT_PAGINATION_CLASS': None,
    'PAGE_SIZE': DEFAULT_PAGE_SIZE,  # For views using PageNumberPagination
}

但是当使用邮递员时,我发送一个带有无效令牌的请求,而不是401(未经授权),403(禁止)正在返回。我能做些什么来解决这个问题吗?

TNX

1 个答案:

答案 0 :(得分:1)

正如documentation所说:

  

将使用的响应类型取决于身份验证方案。尽管可以使用多种认证方案,但是可以仅使用一种方案来确定响应的类型。在确定响应类型时使用视图上设置的第一个认证类。

SessionAuthentication

添加此摘录
  

拒绝许可的未经身份验证的响应将导致HTTP 403禁止响应。

你有答案。

public class AppDbContext: DbContext { public BloggingContext(DbContextOptions<BloggingContext> options) :base(options) { } } 移至第一个TokenAuthentication或记录当前行为。