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进行解密。如果我们把这行注释掉,自动登录就会失效
每天进步一点,加油!