登录后,实现cookie信息和数据库信息的合并

用户登录过程中,通过SSO接口验证后,利用RabbitMQ消息队列将用户ID与cookie中的购物车信息传递。前端Controller接收cookie,Service层处理SSO验证并发送消息到队列。在另一应用中监听队列,完成Redis与数据库购物车商品的合并。
摘要由CSDN通过智能技术生成



购物车流程图:
逻辑:当用户登录之后,判断cookie中是否有购物车信息,如果有,和用户数据库中的购物车商品完成合并,如果cookie中没有购物车信息直接完成登录。
这里写图片描述

用户发起请求登录,前端控制器UserController调用SSO(单点登录)的一个接口,进行登录验证,成功后返回ticket,不成功返回error状态;登录成功还需发一条消息到(RabbitMQ的交换机),拿到这条消息的应用程序(RabbitMQ)绑定了消息队列,监听消息的应用程序得到这个消息后,做自己的业务逻辑,完成redis和数据库中购物车商品的合并。
发送的消息内容应当包含:1.用户——>> userId
2.redis中购物车信息——>> cookie中key——>>TT_CART

这里写图片描述

要想得到未登录前cookie中的商品信息,需要把用户登录时的cookie信息传递给controller,controller调用service,service,调用SSO登录验证,并把cookie中的key连同userId传递给RabbitMq的消息队列 :this.rabbitTempla

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值