Django基于Cookie装饰器实现用户认证
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django基于Cookie装饰器实现用户认证相关的知识,希望对你有一定的参考价值。
def login(request): if request.method =="GET": return render(request,"login.html") elif request.method == "POST": u = request.POST.get("user") p = request.POST.get("password") print(u,p) if u ==user and p ==pwd: res = redirect("/index") res.set_cookie(‘user‘,u,max_age=5) #设置cookie,关闭浏览器cookie失效。max_age=5表示5秒后cookie失效,需要重新登录 return res else: return render(request,"login.html") def index(request): v = request.COOKIES.get("user") if v: return render(request,"index.html",{"current_user":v}) else: return redirect("/login") 二, 基于装饰器实现用户认证 FBV: def auth(func): def inner(reqeust,*args,**kwargs): v = reqeust.COOKIES.get(‘user‘) if not v: return redirect(‘/login‘) return func(reqeust, *args,**kwargs) return inner def login(request): if request.method =="GET": return render(request,"login.html") elif request.method == "POST": u = request.POST.get("user") p = request.POST.get("password") if u ==user and p ==pwd: res = redirect("/index") res.set_cookie(‘user‘,u,max_age=5) #设置cookie,关闭浏览器cookie失效。max_age=5表示5秒后cookie失效,需要重新登录 return res else: return render(request,"login.html") @auth def index(request): v = request.COOKIES.get("user") return render(request,"index.html",{"current_user":v})
以上是关于Django基于Cookie装饰器实现用户认证的主要内容,如果未能解决你的问题,请参考以下文章
CSIC_716_20200113Django入门---forms组件session和cookie登录认证装饰器
基于Django-Cookie的CBV和FBV的用户验证装饰器
django的auth认证,is_authenticate 和装饰器的2个方法,注销的功能,
Django(十六)基于模板的登录案例:登录装饰器csrf攻击方式及防护ajax的Post 的csrf开启写法生成验证码加验证码登录反向解析+传参