【问题标题】:Persist Django user in session在会话中持久化 Django 用户
【发布时间】:2015-11-30 13:52:05
【问题描述】:

我正在使用RemoteUserMiddlewareVAS 进行身份验证。

现在我将其设置为仅针对我的 SSO 登录 URL (/accounts/login/sso/) 设置 REMOTE_USER 变量,因为我必须允许我的用户通过表单登录(对于我们 SSO 系统中不存在的用户)。根据我的调试,用户在VasMiddleware(扩展RemoteUserMiddleware到预处理REMOTE_USER)中得到了正确的身份验证,但是在用户被重定向到主页(/)之后,身份验证就丢失了。

如何保存用户已登录的信息?

【问题讨论】:

    标签: python django authentication django-authentication


    【解决方案1】:

    Django 1.9 将有一个PersistentRemoteUserMiddleware,当身份验证标头仅出现在登录页面上时,它将起作用。

    如果您查看patch,在 Django 1.8 中做类似的事情应该不会太难。我会尝试覆盖process_request,这样它就不会调用self._remove_invalid_user(request) 来注销您的用户(最终可能会复制大量代码),或者覆盖_remove_invalid_user 本身。

    【讨论】:

    • 这是个好消息,我在 Django 1.9 过渡期间将其添加为 TODO 项。感谢您指出,我会这样做!
    猜你喜欢
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 2020-05-10
    • 2020-06-14
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多