zoukankan      html  css  js  c++  java
  • cookie1与session的使用

    #######cookie是存储在客服端上的一个文件(也可以说是键值对)
    使用cookie来实现用户登入伪代码

    def login(request):
        if request.method == "GET":
            return render(request,'login.html')
        if request.method == "POST":
            u = request.POST.get('username')
            p = request.POST.get('pwd')
    
            if """通过密码判断用户是否登入正确,如果正确进行下面的操作""":
                res = redirect('/index/')
                res.set_cookie('username111',u)
                res.set_cookie('cookie的key',"cookie的value")
                return res  #然后把cookie给客户端
            else:
                return render(request,'login.html')
    下次访问其他页面的时候我们就可以通过request.COOKIES.get('上次cookie的key')来判断用户是否在服务器上有相应的值
    
    rep.set_signed_cookie(key,value,salt='加密盐',...)
    参数:
        key,              键
        value='',         值
        max_age=None,     超时时间
        expires=None,     超时时间(IE requires expires, so set it if hasn't been already.)
        path='/',         Cookie生效的路径,/ 表示根路径,特殊的:跟路径的cookie可以被任何url的页面访问
        domain=None,      Cookie生效的域名
        secure=False,     https传输
        httponly=False    只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)
    	前端也可以获取到cookie
    
    <script src='/static/js/jquery.cookie.js'></script>
    $.cookie("list_pager_num", 30,{ path: '/' });
    
    什么是session
    session时放在服务端的(数据库,文件等等地方),我们可以把它看作一个大的字典(request.session),每个用户的随机字符串作为键,用户的信息作为值,一般来说单独用sesion是没意义的,一般是与cookie联合使用
    session生成步骤:
    	1.生成随机字符串
    	2.想随机字符串写在cookie中
    	3.把随机字符串写在session中
    	4.在随机字符串对应的字典中写入值
    在django中写request.session['用户信息']='值'就可以完成以上的所有操作
    
    常用操作
    request.session.get()获取值,获取字典的操作都可以使用
    request.session.set_expiry() 设置超时时间
    request.session.clear() 清除垃圾信息(比如过时信息)
    
    在setting.py中常常对session进行的设置
    SESSION_COOKIE_NAME = "sessionid"  # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认key是sessionid)
    SESSION_COOKIE_PATH = "/"  # Session的cookie保存的路径(默认)
    SESSION_COOKIE_DOMAIN = None  # Session的cookie保存的域名(默认)
    SESSION_COOKIE_SECURE = False  # 是否Https传输cookie(默认)
    SESSION_COOKIE_HTTPONLY = True  # 是否Session的cookie只支持http传输(默认)
    SESSION_COOKIE_AGE = 1209600  # Session的cookie失效日期(2周)(默认)
    SESSION_EXPIRE_AT_BROWSER_CLOSE = False  # 是否关闭浏览器使得Session过期(默认)
    SESSION_SAVE_EVERY_REQUEST = False  # 是否每次请求都保存Session,默认修改之后才保存(默认)
    实现30天免登录
     request.session.set_expiry(60*60*24*30)
     SESSION_SAVE_EVERY_REQUEST = True
  • 相关阅读:
    黑客入侵美国一家公司夺走1500万美元?Midge建议你一定要知道
    开始使用AngularJS和ASP。NET MVC -第二部分
    MVC Tempdata,查看并保持混乱
    AngularJS ui-router
    仅限OCR图像的PDF文件。
    FxButton类
    WPF图像按钮100%在XAML
    CFlexiButton类
    一个更好的位图按钮类
    COddButton
  • 原文地址:https://www.cnblogs.com/KingOfCattle/p/14312899.html
Copyright © 2011-2022 走看看