前段时间,我在b站看了关于django的教学视频,视频里老师验证登录状态是利用session和cookies实现的,也就是说登录状态的保存通过session和cookies保存,代码如下:
def check_login(fn):
def warp(request, *args, **kwargs):
if 'username' not in request.session or 'id' not in request.session:
c_username = request.COOKIES.get('username')
c_id = request.COOKIES.get('id')
if not c_username or not c_id:
return HttpResponseRedirect('/user/login')
else:
request.session['username'] = c_username
request.session['id'] = c_id
return fn(request, *args, **kwargs)
return warp
他是通过装饰器封装验证登录状态的函数
但是这里我就有点疑问了,代码里,他首先查看的是session是否有登录的状态,当session没有后,再查看cookies中是否有登录状态,那么,为什么不能直接就只用cookies来验证登录状态,而是要同时使用两个?有点小懵
|