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/')
登录认证装饰器(cookie版)
猜你喜欢
转载自www.cnblogs.com/xuqidong/p/12032637.html
今日推荐
周排行