zoukankan      html  css  js  c++  java
  • 登录认证装饰器(cookie版)

    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/')
  • 相关阅读:
    JAVA抽象方法,接口
    JAVA基础,字符串
    JAVA运算符
    JAVA数组
    团队任务1:第一次团队会议
    课后作业二:个人项目
    自我介绍
    python3加密 解密 签名 验签
    python3读取xml字符串
    SETX命令设置环境变量
  • 原文地址:https://www.cnblogs.com/xuqidong/p/12032637.html
Copyright © 2011-2022 走看看