多平台统一用户系统设计

0x00 引言

如今愈来愈多的产品都实现了在不一样平台上的功能支持。好比原来的 App 为了微信上的流量,开发了小程序。原来只作微信公众号的,后来为了更好的体验开发了 App 等等。这里面临用户帐号迁移的问题。对于用户来说,但愿原来一个平台上的帐号,在另一个平台也能直接使用,而不须要从新注册。对于企业来说,原来平台上的用户使用了新的平台,也但愿可以识别是同一用户,对用户的分析能够更精确,从而带来一致的体验。html

可是不少系统在开发初期没有作出有足够扩展的设计,在后续业务扩大的时候又急急忙忙,致使多平台统一用户的目标很难实现,形成不少意想不到的问题。数据库

这篇文章里面我将说明一个本身的方案。从功能、数据表设计、接口设计三部分展开。可以在系统构建之初就为将来的需求提供足够扩展的可能。小程序

0x01 多平台统一用户相关功能

系统中用户部分最基础的功能,包括注册,登陆,绑定/解绑。下图中涵盖了市面上能看到几乎全部方式。安全

因为微信实在太过强大,基于微信平台上的子类型也须要考虑。微信

多平台统一用户注册/登陆功能

0x02 数据库表结构设计

表结构的核心在于用户主表和平台用户表。用户主表对内,主要用于系统内部使用。平台用户表,则做为第三方平台与系统内部打交道的通道。系统的复杂度就只在于这两张表之间的逻辑了。spa

注意:用户表设计未考虑到足够的安全策略。正确的方式是须要对密码进行加盐Hash保护设计

表结构设计

0x03 相关请求接口

图示中的接口,在设计时考虑了两点:htm

  1. 接口返回用户信息时以有时效的 token 做为用户标识。能够在必定程度上实现接口的保护。
  2. 其余须要用户信息的接口,经过 token 参数在服务端获取到真正的用户ID,再进行操做。

相关请求接口

0x04 最后

以上就是多平台统一用户系统的设计要点。对于系统的快速起步开发已经足够了,也不须要担忧将来扩展平台的问题。blog

打好基础,之后事半功倍。token

获取思惟导读源文件,请加QQ群:429039234

长按识别二维码

相关文章
相关标签/搜索