0.3门槛系统总结SpringCloud+SSM(一文搞清)

概述

基础工程
wanxinp2p:这是整个项目的父工程,管理依赖环境
wanxinp2p-api : 存放整个项目的API( 接口+各种实体类 )
wanxinp2p-common: 存放整个项目的通用组件( 各种业务封装类+工具类 )
wanxinp2p-gateway-service :网关微服务,端口号 53010
wanxinp2p-consumer-service:用户中心微服务,端口号 53050
wanxinp2p-discover-server:服务注册中心(Eureka),端口号 53000

搭建

Apollo

  • 每增加一个微服务,为了使前端能够通过网关访问到该微服务,都需要在Apollo的gateway-server上新增路由配置

功能开发

在这里插入图片描述

1. 注册

注册功能

1 )前端请求统一账户服务获取短信验证码
2 )前端校验手机号是否存在,校验验证码是否正确,如果不存在则说明未注册
3 )前端发起注册请求,请求用户中心服务
4 )用户中心服务请求统一账户服务保存注册信息 5 )用户中心服务保存用户信息 6 )注册成功

1.1 添加微服务——>wanxinp2p-account-service

wanxinp2p-account-service

1.2 实现发送短信验证码

在这里插入图片描述

1.3 校验手机号和验证码

在这里插入图片描述

1.4 保存

统一账户中心微服务

在这里插入图片描述

用户中心微服务

在这里插入图片描述

远程调用

在这里插入图片描述

2. 登录

前言

认证/授权/会话(退了就记录没了)

机密性(加密算法)

  • 对称加密
    • 加解密同一秘钥
  • 非对称加密(更安全)
    • 一对秘钥,公钥和私钥

完整性
身份验证

  • 有人会篡改,程序以为完整’

2.1认证功能

session

  • 在服务端生成用户相关的数据保存在session中(当前会话),而发给客户端的sesssion_id 存放到 cookie 中,这样用客户端请求时带上 session_id 就可以验证服务器端是否存在 session 数据,以此完成用户的合法校验。当用户登出或过期时把服务端session销毁,客户端的session_id也就无效了。
  • 单点登录——分布式不行
  • session机制方式基于cookie,在移动应用上无法有效使用,并且无法跨域,保持住会话的做法非常麻烦
2.1.1 UAA
  • JWT(Json Web Token)

存到令牌里

  • 当用户认证后,服务端生成一个token发给客户端,客户端可以放到 cookie 或 localStorage 等存储中,每次请求时带上 token,服务端收到token通过验证后即可确认用户身份
  • 非对称加密算法+令牌+易扩展+json方便解析
  • OAuth2.0第三方qq
    • 密码模式

在这里插入图片描述

功能:
1)UAA服务给接入方提供了用户认证并返回令牌的接口。
​2)UAA服务在认证过程中,它需要调用统一账号服务来完成c端以及b端用户的实际验证。

2.1.2功能实现(流程图1、2、3、4实现)

使用了Spring Security框架,按框架规定开发

在这里插入图片描述

UAA帮做了90%,后面还会生成令牌之类的操作我们不用管了
每做完一个功能就要测试——过网关测试

2.2认证拦截功能

校验令牌
校验接入方
同样涉及Spring Security OAuth2

功能实现(流程图5、6、7)

到不了后端,网关校验令牌
配置类拷贝到网关工程的config包
路由转发靠配置/业务逻辑靠过滤器

转账

分布式义务
主从数据库(io密集增删影响查)-数据要同步
cap理论 ca cp(强、一般一致性)
base理论 一般一致性 软实现
tcc补偿

  • 事务协调器(启动提交回滚事务)
  • 每个服务有try confirm cancel接口 3个接口2阶段
  • 后两个出问题重试机制或人工处理/实现幂等

hmily框架实现TCC

配置,
ribbon序列化工具,hmily底层用到
实现注册功能,为common-template项目新建公共namespace,放到公共模版上,common-service关联
参与方省略

在这里插入图片描述

开户

在这里插入图片描述

跟银行打交道都要经过存管代理服务
生成开户数据

在这里插入图片描述
在这里插入图片描述
功能实现
在这里插入图片描述

判断当前用户是否开户
判断提交过来的银行卡是否绑定
保存银行卡信息
准备数据,发起远程调用,把数据发给存管代理服务

请添加图片描述

前端传来没手机号,要取手机号不能从session取了,用工具类
要导入securityUtil,获取上下文对象(过网关把信息放到上下文对象,也就是request里,转发到各个微服务)从里面取jsonToken,转换成当前用户登录的对象
导入loginUser(定义当前用户的基本信息)

在这里插入图片描述
存管代理生成开户数据

保存交易记录
签名/加密数据返回

银行回调

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是二次元穿越来的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值