远程用户的Django MIDDLEWARE问题

时间:2019-04-03 13:33:39

标签: django django-rest-framework

我的settings.py

AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.RemoteUserBackend',
    'django.contrib.auth.backends.ModelBackend',
]


MIDDLEWARE = [
    # ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.RemoteUserMiddleware',
    # ...
]

ModelBackend由DRF可浏览API使用。

RemoteUserBackend由前端应用程序使用。

如果用户登录到Browsable API,则前端将同时发送身份验证令牌和会话令牌。这两个凭证都是不同的django用户。

AUTHENTICATION_BACKENDS应该按顺序工作,但是AuthenticationMiddleware在MIDDLEWARE中排在第一位,这是强制性的。

经过会话身份验证的用户在前端应用程序中获取了错误的数据。 Django会忽略远程用户凭据。用户必须从可浏览的API中注销。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

仅作记录。我只是在页面加载时从前端注销。