三方账号授权登录系统设计思路

[TOC]

背景

借技术总结时间梳理一下三方登录授权的一些技术细节实现,假设saas 店铺商品管理插件中心是两个独立的账号体系(内部分别对应 shopId 和 sellerId),saas 店铺的商品管理模块在商品管理插件中心进行管理,如下图所示:

saasbg.png

其中saas 店铺首次使用商品管理插件中心时,需要注册商品插件卖家账号,注册完账号再次使用时会自动登录商品插件卖家账号(商家无感跳转)。过程中需要考虑以下技术细节:

  • saas 店铺商品管理插件中心是两个独立的域名,怎么做跨域访问信息传递,又要保证信息的安全性?
  • 店主在商品管理插件中心管理商品时,怎么知道管理的是哪个店铺的商品?(即当前的 sellerId 应该对应哪个 shopId)
  • 如果 saas 店铺店主多个店员在操作同一个商品插件卖家账号怎么办,会不会出现登录失效的场景?

关键概念

  • saas店铺:底座使用 saas 开放平台,每个 saas 店铺账号对应一个 shopId
  • 商品插件管理中心: 独立的域名和服务,商品插件管理中心必须要登录商品卖家账号,每个商品卖家账号对应一个 sellerId

系统设计思路

核心技术实现细节点:

  • 跨域问题使用 url 携带业务参数来解决,同时结合 OAuth2.0 框架实现 saas 店铺身份的传递
  • 商品插件卖家 session 存储 saas 店铺 shopId 信息,便于知道在插件中操作的是哪个店铺
  • 商品管理插件中心使用 redis 存储 shopId 和 token 之间的关联关系,同时设置失效时间,便于后续在插件中心获取 token 使用 open api 访问店铺信息
  • 商品管理插件中心维护 shopId 与 sellerId 之间的关联关系,便于后续自动登录使用

下面和业务串联起来使用(看图说话,细节不再详述,有问题直接留言,回复快):

  • 场景一:saas 店铺首次使用商品管理插件中心
firstSaas.png
  • 场景二:saas 店铺再次使用商品管理插件中心
againSaas.png

总结

本文意在传递三方登录的关键技术细节,图中的很多技术细节和业务细节没有详述,比如 OAuth2.0框架、自动登录技术实现细节、怎么把 shopId 放到会话 session中等。

你可能感兴趣的:(三方账号授权登录系统设计思路)