乘客登录
需求说明
- openid是小程序端微信的唯一标识
数据库表
表中存在openid就不是第一次登录,否则就是第一次登录
登录流程时序
- 如果是第一次登录,注册之后也是要返回token的
- code就是单纯什么参数都没有,直接调用微信接口服务的wx.login()获取即可
-
在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。
-
localStorage的优势与局限
1、localStorage拓展了cookie的4K限制
2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的
localStorage的局限
1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性
2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换
3、localStorage在浏览器的隐私模式下面是不可读取的
4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡
5、localStorage不能被爬虫抓取到
localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空
乘客登录具体实现
根据code获取openid
- 远程调用的是service模块中的controller
获取token
获取登录用户信息
- 获取openid的时候我们就创建了用户到数据库中,就是获取的这个用户信息数据,没什么难度
- @RequestHeader和HttpServletRequest都可以获取请求头,效果都是一样的,用哪个都行
- 这里还用到了BeanUtils.copy()来进行实体类的复制
这个功能很简单,就是对数据库的一个简单查询,就不贴代码了
登录校验 使用自定义注解和aop !!!
我们还是要把科学和技术分开,如果一讲做事要有目的性,目的性就是技术,不是科学。科学就是你的兴趣爱好,为了搞清楚不惜一切代价。所以,科学家大多数看上去都是“疯子”,很少科学家能看到自己的研究在人类社会的成就。比如,麦克斯韦不知道他的方程对人类社会这么重要,现在的无线世界是基于他的电磁场理论;法拉第也不知道现在的电气化社会是源自他的线圈框实验;毕达哥拉斯也想不到他的几何学理论演变成了微积分的萌芽……。
https://baijiahao.baidu.com/s?id=1760664270073856317&wfr=spider&for=pc
擦亮花火、共创未来——任正非在“难题揭榜”花火奖座谈会上的讲话
任正非