当前位置:   article > 正文

Django中cookie和session的存、取、删除_django withcredentials

django withcredentials

vue 设置Axios允许携带cookie

import axios from 'axios'
Vue.prototype.axios =axios
axios.defaults.withCredentials = true
  • 1
  • 2
  • 3

Django 设置settings允许携带cookie

CORS_ALLOW_CREDENTIALS = True
  • 1

一定要把所有的本地IP改成公网IP,前后端起项目要用0.0.0.0 启动,必须携带cookie不然会取不到session

cookie的存:

response = HttpResponse('登陆成功')     #改成重定向等都可以
response.set_cookie('username',username)
#response.set_signed_cookie('username',username,salt='asdasd')    #带签名的
  • 1
  • 2
  • 3

cookie(加盐)

response.set_cookie('password',password) 
return response
  • 1
  • 2

cookie的取:

username = request.COOKIES.get('username')
#username = request.get_signed_cookie('username',salt='asdasd')     #获取带签名的cookie(盐要相同,不然拿不到)
password = request.COOKIES.get('password')
  • 1
  • 2
  • 3

cookie的删除:

response = HttpResponse('清除成功')      #改成重定向等都可以
response.delete_cookie('username')
response.delete_cookie('password')
return response
 PS:不设置过期时间的话,默认关闭浏览器就失效
  • 1
  • 2
  • 3
  • 4
  • 5

session的存:

request.session['username'] = username
#上面这一句代码完成了以下事情:
#1、生成随机字符串
#2、将随机字符串写到用户浏览器cookie
#3、将随机字符串保存到服务器session
#4、在服务器随机字符串对应的字典中设置相关内容
request.session['password'] = password
return HttpResponse('登陆成功')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

session的取:

username = request.session.get('username')
#username = request.session['username']      #两种方式都可以取,但是这种如果没取到会报错
password = request.session.get('password')
  • 1
  • 2
  • 3

session的删除:

request.session.flush()    #删除所有session
#del request.session['username']   #删除key为username的session
return HttpResponse('清除成功')
  • 1
  • 2
  • 3
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/559541
推荐阅读
相关标签
  

闽ICP备14008679号