2015-09-04 89 views
1

我使用RemoteUserMiddlewareVAS進行身份驗證。在會話中保留Django用戶

現在我設置它,所以REMOTE_USER變量只爲我的SSO登錄URL(/accounts/login/sso/)設置,因爲我必須允許我的用戶通過表單登錄(用戶不在我們的SSO系統中)。根據我的調試,用戶在VasMiddleware(它將RemoteUserMiddleware擴展爲預處理REMOTE_USER)中得到了正確的認證,但是在用戶被重定向到主頁(/)之後,認證會丟失。

如何保存用戶已登錄的信息?

回答

2

Django 1.9將有一個PersistentRemoteUserMiddleware,這將在登錄頁面上僅存在身份驗證標頭時起作用。

如果你看看patch,在Django 1.8中做類似的事情不應該太難。我會嘗試覆蓋process_request,以便它不會呼叫self._remove_invalid_user(request)註銷您的用戶(可能最終會複製大量代碼),也可能會覆蓋_remove_invalid_user本身。

+0

這是個好消息,我在Django 1.9過渡時添加了這個TODO項目。感謝您指出,我會這麼做! – GergelyPolonkai