【一 OAuth网络安全登录认证】先总结一下现阶段网站开发中网络安全登录方面的几种架构 。本人擅长的是JAVA语言的,所以文章中大部分写的java方面的相关技术 。
第一种:前后端不分离的模式,像以前的spring+jsp、还有现在还有很多用户的spring+模板等 。登录模式采用的是session存储登录信息 。常用的安全框架主要有shiro,security 。前端cookie中存储后端返回的sessionid,后端服务通过判断cookie中的sessionid判断用户的登录状态 。
第二种:前后端分离模式 。像springboot+vue,springboot+react,springboot+angular等都是属于这种前后端分离的模式 。前后端分离之后,后端服务没法像之前一样直接获取token信息,只能通过异步请求的方式,将token传入服务端进行验证 。这种模式前后端通过token进行交互,通过token记录用户登录状态 。
文章插图
前后端分离模式验证token又分几种情况:
- jwt模式(全称JSON WEB TOKEN),也就是一种token的实现形式,放在前端就是一串加密的字符串,jwt字符串在用户登录请求接口的时候,由后端服务通过密钥以及一些用户权限信息生成的token返回给前端,前端cookie,或者storage中存储token,在后边的请求中都带着这个token去请求后端服务的需要安全认证的接口 。后端会通过这个token进行验证,验证是通过对应的解密方式解密token,然后验证token是否过期是否伪造 。这里是重点,服务端不存储token信息,只有一套加密解密操作,进行jwt token的验证 。
- token+redis的模式 。跟第一点一样 。不同的是,这里的token可以是一串不含任何信息的唯一性字符串,然后,用户登录的时候生成token,并且在redis缓存服务器中以key,value加过期时间的方式进行存储,这里一般会把用户信息也放入进来,最后把token返回给前端,用户后边掉用接口的时候,后端服务通过这个token从redis中取数据进行token的验证 。
- jwt+token+redis模式 。通过前面的描述,前两种方式虽然有不同点,但是两者完全可以结合使用 。redis的灵活过期时间,jwt的无状态设计 。另,需要注意的是redis只是一个缓存数据库,token可以直接存储在数据库中,通过其他方式比如记录token的生成时间,判断token是否过期 。
推荐阅读
- 三 OAuth网络安全登录认证
- Linux 部署时间同步服务Chrony
- Google公布程序员一天代码量!你猜对了么?
- 一键解除网页右键限制
- 历史上有赵飞燕这个人吗,赵飞燕的一生历史
- 李商隐一生的情史,李商隐爱情经历
- 什么生肖最痴情念念不忘?兜兜转转猜一生肖
- 如何设置计算机自动关机如何设置计算机自动关机
- 三国演义为什么司马懿赢了,三国演义的司马懿是一个什么样的人
- 三国唯一打败吕布的人马超为什么怕赵云,赵云能否打赢吕布