• 8、Django实战第8天:session和cookie自动登录机制


    因为http是无状态协议,因此,并不会记录用户的登录状态。在早期,是直接把用户名和密码等信息存储在浏览器的cookie来实现记录用户密码登录。

    但是这样存在安全隐患,只要别人登录你的电脑cookie信息,就取得了用户名和密码等重要信息。

    为了解决这个问题,我们使用了session技术

    在Django中,当我们输入用户名、密码登录后。它调用login,这个login根据用户信息生成了一个session,生成的session信息会保存到数据表当中(django_session表),这个表会根据用户的信息进行加密生成session_data

    session_key: 就是服务器给用户返回的id, 在浏览器当中,这个值是保存为sessionid

    session_data: 这是一个加密后的信息,用来保存用户名和密码等信息

    expire_data: 过期时间,Django可以设置过期时间

    那么Django是如何获取到客户端传给我们的session信息呢?在settings.py中,有下面一行配置,它会拦截到session信息,然后根据sessionid去数据库中查找,如果找到,则对session_data进行解密。如果我们把这行注释掉,自动登录就会失效

  • 相关阅读:
    模拟Spring的Ioc
    Java常见异常总结
    Java编码与乱码问题
    Java正则表达式入门
    观察者模式
    Java内存泄漏问题
    责任链模式
    选择排序(C++/Java实现)
    设计模式学习工厂模式
    Java验证码
  • 原文地址:https://www.cnblogs.com/sellsa/p/8461204.html
Copyright © 2020-2023  润新知