在Django中:在加载每个页面之前检查cookie是否设置的最佳方法是什么?
背景:我正在使用使用LDAP身份验证的网站。我想避免在每一页上都要求request.META.get('REMOTE_USER')
,因为它绝对会破坏服务器:它被请求页面上的每个资源,服务器被束缚,回退到基本身份验证,用户看到很多对话框。
因此,我想在网站的每个页面上执行以下操作:
REMOTE_USER
并将其保存在会话长度的Cookie中,然后重新定向回来。基本上,我想要一个@login_required装饰器的近似值,而不是实际使用Django登录/用户框架。
对于网站中所有页面执行此操作的最佳方式的建议,而不重复大量代码?
非常感谢!答案 0 :(得分:3)
您想要添加中间件,请参阅http://docs.djangoproject.com/en/dev/topics/http/middleware/#process-request。如果未设置cookie,则返回http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect,如果已设置,则返回None。