在会话中保留 Django 用户
Persist Django user in session
我正在使用 RemoteUserMiddleware to authenticate with VAS。
现在我将其设置为 REMOTE_USER
变量仅为我的 SSO 登录设置 URL (/accounts/login/sso/
),因为我必须允许我的用户通过表单登录 (对于不在我们的 SSO 系统中的用户)。根据我的调试,用户在VasMiddleware
(扩展RemoteUserMiddleware
以预处理REMOTE_USER
)中正确验证,但在用户被重定向到主页后(/
), 身份验证丢失。
如何保留用户已登录的信息?
Django 1.9 will have a PersistentRemoteUserMiddleware
,当身份验证 header 仅出现在登录页面时,它将起作用。
如果您查看 patch,在 Django 1.8 中做类似的事情应该不会太难。我会尝试覆盖 process_request
,这样它就不会调用 self._remove_invalid_user(request)
来注销您的用户(这可能最终会重复很多代码),或者覆盖 _remove_invalid_user
本身。
我正在使用 RemoteUserMiddleware to authenticate with VAS。
现在我将其设置为 REMOTE_USER
变量仅为我的 SSO 登录设置 URL (/accounts/login/sso/
),因为我必须允许我的用户通过表单登录 (对于不在我们的 SSO 系统中的用户)。根据我的调试,用户在VasMiddleware
(扩展RemoteUserMiddleware
以预处理REMOTE_USER
)中正确验证,但在用户被重定向到主页后(/
), 身份验证丢失。
如何保留用户已登录的信息?
Django 1.9 will have a PersistentRemoteUserMiddleware
,当身份验证 header 仅出现在登录页面时,它将起作用。
如果您查看 patch,在 Django 1.8 中做类似的事情应该不会太难。我会尝试覆盖 process_request
,这样它就不会调用 self._remove_invalid_user(request)
来注销您的用户(这可能最终会重复很多代码),或者覆盖 _remove_invalid_user
本身。