B2C电商项目 购物车订单,下单业务 微服务之间认证 工作总结

购物车

采用用户必须先登录才能使用购物车功能

1.1、购物车业务分析

(1)需求分析
用户在商品详细页点击加入购物车,提交商品SKU编号和购买数量,添加到购物车。购物车展示页面如
下:
B2C电商项目 购物车订单,下单业务 微服务之间认证 工作总结_第1张图片
(2)购物车实现思路
B2C电商项目 购物车订单,下单业务 微服务之间认证 工作总结_第2张图片
我们实现的是用户登录后的购物车,用户将商品加入购物车的时候,直接将要加入购物车的详情存入到
Redis即可。每次查看购物车的时候直接从Redis中获取。

1.2、 添加购物车

B2C电商项目 购物车订单,下单业务 微服务之间认证 工作总结_第3张图片

1.3、 购物车列表

1.3.1 思路分析

B2C电商项目 购物车订单,下单业务 微服务之间认证 工作总结_第4张图片
接着我们实现一次购物车列表操作。因为存的时候是根据用户名往 Redis中存储用户的购物车数据的,
所以我们这里可以将用户的名字作为key去Redis中查询对应的数据

1.4、 购物车渲染

B2C电商项目 购物车订单,下单业务 微服务之间认证 工作总结_第5张图片
如上图所示 ,用户每次将商品加入购物车,或者点击购物车列表的时候,先经过订单购物车后端渲染服
务,再通过feign调用购物车订单微服务来实现购物车的操作,例如:加入购物车、购物车列表。

1.5、 商品数量变更

用户可以点击+号或者-号,或者手动输入一个数字,然后更新购物车列表,我们可以给-+号一个点击事
件,给数字框一个失去焦点事件,然后调用后台,实现购物车的更新。

删除商品购物车

我们发现个问题,就是用户将商品加入购物车,无论数量是正负,都会执行添加购物车,如果数量如果
<=0,应该移除该商品的。

三、 微服务间认证

B2C电商项目 购物车订单,下单业务 微服务之间认证 工作总结_第6张图片
如上图:因为微服务之间并没有传递头文件,所以我们可以定义一个拦截器,每次微服务调用之前都先
检查下头文件,将请求的头文件中的令牌数据再放入到header中,再调用其他微服务即可。
测试访问购物车,产生如下效果:
B2C电商项目 购物车订单,下单业务 微服务之间认证 工作总结_第7张图片

3.2、 动态获取当前登陆人

3.2.1 数据分析

用户登录后,数据会封装到 SecurityContextHolder.getContext().getAuthentication() 里面,
我们可以将数据从这里面取出,然后转换成 OAuth2AuthenticationDetails ,在这里面可以获取到令
牌信息、令牌类型等代码如下:
B2C电商项目 购物车订单,下单业务 微服务之间认证 工作总结_第8张图片
这里的 tokenValue是加密之后的令牌数据,remoteAddress是用户的IP信息,tokenType是令牌类型。
我们可以获取令牌加密数据后,使用公钥对它进行解密,如果能解密说明数据无误,如果不能解密用户
也没法执行到这一步。解密后可以从明文中获取用户信息

你可能感兴趣的:(工作项目总结(电商系统))