分享人:吴志勇
视频:https://v.qq.com/x/page/z0522os3by7.html
PPT:https://github.com/WuZhiyong1759/xiaoketangPPT/tree/master/XKT2017%E5%B9%B47%E6%9C%885%E6%97%A5PPT
1.背景介绍
我们在访问需要身份验证的网页时,通常在我们第一次访问该网站时需要登录,后面我们再次访问该网站时,就能直接进去了,这样的功能是怎么实现的呢?
2.知识剖析
本次分享的内容将涉及到以下三点内容,
1.cookie
2.token
3.拦截器
3.常见问题
http协议是无状态的,那么是怎么实现记住密码的?
4.解决方案
上网百度,一直是咋们修真院提倡的自学方式之一。
ps:作为网站的编写者,我们无从知道坐在电脑前的那个人是谁。我们能够知道的是,访问网站的是哪一台电脑——这一点可以通过Cookie实现。因此,对用户的识别实际上就是对客户端电脑的识别。
简单的说,当用户第一次登录网站的时候,网站向客户端发送一个包含有用户名的Cookie。当用户在之后的某个时候再次访问,浏览器就会向网站服务器回送这个Cookie,于是,我们可以从这个Cookie中读取到用户名,然后调用登录的方法,从而实现自动为用户登录。
5.编码实战
springMVC中拦截器配置
控制器中添加cookIe
拦截器工具类
6.扩展思考
除了cookie认证方式实现自动登录外,还有哪些做法可以实现自动认证登录?
web开发中除了cookie常用session来做认证登录。
7.参考文献
8.更多讨论
如何在实现自动登录的情况下保障自己的账密安全?
1、不要记住密码
2、使用复杂的加密算法
3、使用强大唯一标识符比如UUID等
问题:
1、为什么加密生成的token的内容是ID+当前时间
答:因为这段代码是当时做任务时候写的,任务当中要求对ID+当前时间进行加密,所以这里的token内容是ID+当前时间,当然实际开发中,可根据自己实际的开发需求,对自己存入cookie中的信息加密。
2、cookie的生存周期是怎么设定的
cookie声明后,有这样一个方法.setMaxAge(60*60*24)设置最大‘年龄’也就是设定最大有效时间,这里括号里边的数据单位为秒,当前设定的值表示cookie存在时间保留一天。
友情连接:IT修真院 IT修真院简书JAVA专题