zoukankan      html  css  js  c++  java
  • 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})
      
  • 相关阅读:
    正定矩阵与半正定矩阵定义与判别
    LQR (线性二次型调节器)的直观推导及简单应用
    simulink模块使用方式
    无人驾驶领域现有的主流智能车辆仿真软件具体情况介绍
    什么是在环测试
    C# Dictionary 是否包含key
    jquery.显示隐藏切换
    easyui-dialog
    Visual Studio 命令行wsdl生成C#操作类
    使用C#创建Windows服务
  • 原文地址:https://www.cnblogs.com/ixiaosong/p/6955999.html
Copyright © 2011-2022 走看看