首页 > 代码库 > Django框架基础之COOKIE
Django框架基础之COOKIE
cookie:
a. 保存在浏览器端“键值对”
b. 服务端可以向用户浏览器端写cookie
c. 客户端每次方请求时,会携带cookie去
服务端给浏览器发送cookie:
obj=redirect(‘‘)
obj.set_cookie()
obj.set_signed_cookie(key,value,salt=‘‘,)
服务端从浏览器获取cookie:
request.COOKIE.get(‘key‘)
request.get_signed_cookie()
cookie: key, 键
value=http://www.mamicode.com/‘‘, 值
max_age=None, 超时时间 以秒为单位
expires=None, 超时时间
path=‘/‘, cookie生效的路径,/表示根路径,根路径的cookie可以被任何url的页面访问
domain=None, cookie生效的域名
secure=False, https传输
httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以覆盖)
应用: a 投票
b 用户登录
1 在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。2 Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。3 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的,... 4 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议5 要比http协议安全
利用cookie做用户验证:
1 def login(request): 2 if request.method==‘GET‘: 3 return render(request,‘login.html‘) 4 else: 5 username=request.POST.get(‘username‘) 6 passwd=request.POST.get(‘passwd‘) 7 if username==‘alex‘ and passwd==‘123‘: 8 obj=redirect(‘/classes/‘) 9 # obj.set_cookie(‘ticket‘,‘dfsgtrhfgtd‘,max_age=‘10‘) #最大时效 ‘一个月免登陆’10 obj.set_signed_cookie(‘ticket‘,‘123‘,salt=‘666‘,max_age=10) #ticket=123:1dNbYh:Y3vofyscBVHMEOmld_Y7k-_iTjg11 return obj12 else:13 return render(request,‘login.html‘)
1 #cookie验证装饰器函数 2 def login_later(func): 3 def wrapper(*args): 4 5 print(args[0]) #<WSGIRequest: GET ‘/classes/‘> 6 7 # ticket = args[0].COOKIES.get(‘ticket‘) 8 ticket=args[0].get_signed_cookie(‘ticket‘,salt=‘666‘) 9 if not ticket:10 return redirect(‘/login/‘)11 else:12 return func(*args)13 return wrapper
Django框架基础之COOKIE
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。