【问题标题】:Django MIDDLEWARE problem with RemoteUsersRemoteUsers 的 Django MIDDLEWARE 问题
【发布时间】:2019-04-03 13:33:38
【问题描述】:

我的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 中注销。

我该如何解决这个问题?

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-03-05
      • 2017-05-10
      • 2011-06-05
      • 2021-04-18
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 2018-09-20
      • 1970-01-01
      相关资源
      最近更新 更多