1. 分布式session
ip hash
缺点:不容灾
session复制
缺点:复制需要时间,session容易混乱
session集中存储在redis上面
在分布式情况下,从有状态服务(session)转向无状态服务。
无状态服务:全部用户信息以token的形式存到客户端。服务端不要session。
客户端下一次请求时候只需要在服务端验证一下token即可。无状态就是t1和t2服务器没有任何区别,这样更易于扩展。不用考虑运行当中状态值的区别。
后台如何验证token?
rsa,公钥 私钥
先生成一个对成密钥,然后对整个报文进行加密。
再用公钥和rsa对aes的key进行加密。
2. oauth2
好处:外部网站不会接触到用户信息,用户也接触不到token。解决了三方不互信的问题。
获得clientid和clientsecret。secret主要用于获取token加密
四种模式
state参数用来当一个身份证明,防止csrf攻击。
token会失效,刷新token
带一个token去获得一个新token,避免重新授权。
review:
获得code
拿到服务
简化模式
url给了token不安全
因此实现ouath
https://www.jb51.net/article/169337.htm
还有个问题,简单令牌模式有性能瓶颈
jwt把令牌信息
JWT的构成:第一部分我们称它为头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature).
参考:https://www.bilibili.com/video/BV1Kt4y1i7nkp=6&spm_id_from=pageDriver
spring security oauth架构
授权服务器:
https://mp.weixin.qq.com/s/GXMQI59U6uzmS-C0WQ5iUw
https://github.com/lenve/oauth2-samples