Aks*_*aaj 10
会话数据在cookie中设置process_response的SessionMiddleware.此函数不使用任何设置request.user,因此您无法知道此方法内部用户是登录用户还是匿名用户.因此,您无法禁止将会话cookie发送到浏览器.
但是,如果您需要此功能,则可以进行子类化SessionMiddleware和覆盖process_response.
from django.contrib.sessions.middleware import SessionMiddleware
from django.conf import settings
class NewSessionMiddleware(SessionMiddleware):
def process_response(self, request, response):
response = super(NewSessionMiddleware, self).process_response(request, response)
#You have access to request.user in this method
if not request.user.is_authenticated():
del response.cookies[settings.SESSION_COOKIE_NAME]
return response
Run Code Online (Sandbox Code Playgroud)
你可以用你NewSessionMiddleware的代替SessionMiddleware.
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'myapp.middleware.NewSessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3713 次 |
| 最近记录: |