单点登录和购物车原理
单点登录实现过程:
用户发送访问到web应用,检查cookies中是否不存在token,如果没有token,重定向到认证中心,提示用户注册登录,用户登录成功后,在本地cookie生成一个token,带着token跳转到web应用,服务器检查token通过后则可以正常访问。
购物车的实现:
购物车:
- 购物车跟用户的关系?
a) 一个用户必须对应一个购物车【一个用户不管买多少商品,都会存在属于自己的购物车中。】
b) 单点登录一定在购物车之前。 - 跟购物车有关的操作有哪些?
a) 添加购物车
i. 用户未登录状态 - 添加到什么地方?未登录将数据保存到什么地方?
a) Redis? — 京东
b) Cookie? — 自己开发项目的时候【如果浏览器禁用cookie】
ii. 用户登录状态 - Redis 缓存中 【读写速度快】
a) Hash :hset(key,field,value)
i. Key:user:userId:cart
ii. Hset(key,skuId,value); - 存在数据库中【oracle,mysql】
b) 展示购物车
i. 未登录状态展示 - 直接从cookie 中取得数据展示即可
ii. 登录状态 - 用户一旦登录:必须显示数据库【redis】+cookie 中的购物车的数据
a) Cookie 中有三条记录
b) Redis中有五条记录
真正展示的时候应该是八条记录