用户中心
    1.是否维护用户登录认证数据
    2.是否维护多系统用户的关联关系(用户绑定关系),提供统一用户ID

鉴权中心
    1.是否只做用SSO类似功能(用户登录一个系统之后能直接跳转到其他系统而不需要登录)
    2.是否需要有自己的数据库(维护一些用户数据)
    3.是否需要提供统一的用户绑定操作流程

鉴权中心

前提条件

  1. 维护所有系统的账号信息(登录名、密码、手机号等,不包括业务字段: 积分、九州豆)
  2. 维护一个用户在多个系统间的账号绑定关系

登录流程

  • 用户名密码登录

    用户鉴权网关业务系统(b2b)1.登录请求(login_name、login_pwd)2.验证登录(login_name、login_pwd)3.生成gw_token4.透传给业务系统5.验证登录,生成b2b_token(可选)6.响应用户(带上b2b_token)7.响应用户(带上b2b_token, gw_token)用户鉴权网关业务系统(b2b)
  • 手机号验证码登录

用户鉴权网关业务系统(b2b)1.登录请求(phone_number)2.发送验证码(validate_code)3.响应用户4.提交验证码(validate_code)5.验证登录6.生成gw_token7.透传给业务系统8.验证登录,b2b_token生成(可选操作)9.响应用户(带上b2b_token)10.响应用户(带上b2b_token, gw_token)用户鉴权网关业务系统(b2b)
  • APP扫码登录
用户鉴权网关业务系统(b2b)1.浏览器获取扫描二维码2.生成扫描二维码(scan_code)3.响应用户(scan_code)4.用户APP扫码,确认登录(scan_code、token)5.绑定登录用户与扫描二维码6.响应用户7.用户浏览器登录(scan_code)8.验证登录9.生成gw_token10.透传给业务系统11.验证登录,b2b_token生成(可选操作)12.响应用户(带上b2b_token)13.响应用户(带上b2b_token, gw_token)用户鉴权网关业务系统(b2b)
  • 微信小程序登录
用户鉴权网关业务系统(b2b)微信服务端1. wx.login() 获取 code2. 发起登录请求(code)3. 验证登录code获取openid4. 返回openid5.生成gw_token6.通知微信小程序登录7.b2b_token生成(可选操作)8.响应用户(带上b2b_token)9.响应用户(带上b2b_token, gw_token)用户鉴权网关业务系统(b2b)微信服务端

鉴权流程

用户鉴权网关业务系统(b2b)1.访问业务系统(gw_token, b2b_token)2.验证gw_token3.透传给业务系统网关已经验证了TokenToken关联一个账号,所以支持类似getCurrentAccount()获取当前登录用户的账号信息4.验证b2b_token(可选)5.执行业务逻辑...6.响应用户7.透传响应数据用户鉴权网关业务系统(b2b)

注册流程

用户鉴权网关业务系统(b2b)1.提交新增用户(用户注册)表单2.创建账号信息(account_id)3.透传给业务系统(带上account_id)新增用户(用户注册)必须是幂等接口4.新增用户(cust_id)5.响应用户(带上cust_id)loop[ 重试操作直至成功 ]6.透传响应数据用户鉴权网关业务系统(b2b)

改动点

  1. 业务系统登录、鉴权、注册(新增)逻辑
  2. 业务系统用户信息维护相关逻辑

新增流程

  1. 一个用户在多个系统间的账号绑定关系
  2. SSO实现逻辑?

TODO List

  • 微信小程序登录流程
  • 接入系统统一接口定义
  • 注册流程修改
  • 设计表结构
文档更新时间: 2020-06-10 16:40   作者:lizw