统一授权服务

最近一直在学go感觉有点好玩,废话真多。。,整理下授权服务的功能,好久没有总结了,
## 项目背景
  现在公交这边有好几个服务,如公交app,定制公交,出租车,租车,好多个服务,他们都有自己的用户体系(登录、注册、授权、实名认证)。
  公交老大想让这些服务都放到一个app里面(A应用),实现在一个app里面可以使用多个服务的功能,可以使用钱包里面的钱,去享受各个服务的功能,如用钱包乘公交车,钱包租车等。
  问题是现在每个服务都有自己的注册登录机制,没办法做用户统一,所以就有了现在这个项目,auth服务

## auth服务
  就是想整合所有的注册、登录、实名认证。然后由auth服务统一分配token、用户信息。
目前的方案是:所有的应用都去auth服务里面注册,注册后,可以设置共享token,比如A应用注册了,他可以设置B应用C应用也可以用A应用注册的用户token去做自己的业务,
登录获取token的两种实现方式
  一种是如果B应用C应用是嵌入到A应用里面的,可以直接使用A应用的token去做自己的业务,这里也要排除下嵌入的应用是否有权限(验证用户是否有登录某系统权限接口),有权限才能使用token去做自己的业务。
  一种是如果B应用C应用是自己独立的应用,可以使用账号加密码的方式调auth服务的登录接口获取token,(这里需要注意,每个单独的应用需要传入自己的应用ID)。

## 接口
1.注册前验证是否注册过用户接口
2.注册用户接口:单纯往user表添加一条数据,没有密码默认一个密码
3.注册应用接口:添加可登录的应用,根据注册userid + 应用ids(可以绑定多个),绑定用户可以登录那些应用
4.登录接口:需要传入loginName + password + 应用id,
然后根据用户名找到用户能登录的所有应用id,使用jwt存到token中(userid + loginName + 时间戳 + 应用ids),这样我们每次再用其他应用单独登录时就可以直接去在网关哪里用token判断他有没有权限登录了
5.验证用户是否有登录某系统权限接口:排除下嵌入的应用是否有权限,有权限才能使用token去做自己的业务
6.获取验证码接口
7.验证码登录接口
8.三方授权登录接口:authCode + flag(支付宝、支付宝小程序等)
9.获取用户授权信息接口:三方授权登录使用
10.各自应用的业务接口请求方式,需要再Headers中携带token和自己的应用ID(网关验证token是否有登录权限)

就是他拿着A应用的token调用自己的业务的时候,token的验证是走自己的网关过滤器还是走auth的网关过滤器(走auth的网关过滤器),大致就是这样的,他们要求可以自己在注册的时候设定那些应用需要统一授权

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值