我的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中注销。
我该如何解决?
答案 0 :(得分:0)
仅作记录。我只是在页面加载时从前端注销。