def login_auth(func):
def inner(request,*args,**kwargs):
is_login=request.COOKIES.get('is_login')
if is_login:
#代表登录了
return func(request,*args,**kwargs)
else:
#表示没有登录,重定向到登录页面
# 本次请求的全路径,包括参数
url=request.get_full_path()
return redirect('/login_cookie/?ReturnUrl=%s'%url)
return inner
def login_cookie(request):
if request.method=='GET':
return render(request,'login.html')
if request.method == 'POST':
user = models.User.objects.filter(name=request.POST.get('name'), pwd=request.POST.get('pwd')).first()
if user:
# 登录成功,写cookie
# 登录成功,跳转到上次访问的页面
last_url=request.GET.get('ReturnUrl')
if last_url:
obj= redirect(last_url)
else:
obj = redirect('/order/')
obj.set_cookie('name',request.POST.get('name'))
# obj.set_cookie('is_login',True,max_age=5)
# 写的这个cookie只在order页面有效
obj.set_cookie('is_login',True,path='/order/')
return obj
else:
return redirect('/login_cookie/')