数据库表设计3:微信、QQ第三方多账号登陆 | 您所在的位置:网站首页 › 淘宝多端登录 › 数据库表设计3:微信、QQ第三方多账号登陆 |
前言:相比于本地注册,第三方登录一般来说比较方便快捷。因为显著降低了用户的注册或登录成本,从而减少由于本地注册的繁琐性而带来的隐形用户流失,最终提高注册转化率。现在几乎大部分的 App 都支持使用多个第三方账号进行登录,如:微信、QQ、微博等,我们把此称为多账号统一登陆。而这些账号的表设计,流程设计至关重要,不然后续扩展性贼差。 一、常见的四种注册登录方式①用户名+密码 这种方式在很多初期网站建设会使用,先注册,再进行登录,在老一点的cms系统中都能找到这个影子。 ②手机号+短信验证码 ③引入第三方账户登录方案 常见的第三方社交登录:微信、微博、QQ等 ④本机号码一键登陆 获取到当前手机使用的手机卡号,直接使用这个号码进行登录,这就是一键登录。 一键登录能不能做,取决于运营商是否开放相关服务,这也是为什么过去没有一键登录,直到最近三大运营商都有了自己的开放平台: 二、 什么是第三方登录所谓的第三方登录,是说基于用户在第三方平台上已有的账号和密码来快速完成己方应用的登录或者注册的功能。而这里的第三方平台,一般是已经拥有大量用户的平台,国外的比如Facebook,Twitter等,国内的比如微博、微信、QQ等。 使用第三方登录后,要求用户补充一些信息(手机号、邮箱等等),如果用户信息已存在,则直接绑定;(在用户经过新浪微博或QQ授权登陆后,你的系统自动弹出要求该用户补充少量信息的对话框) 如果为了用户体验更好,可以将第三方登录和账号绑定进行解耦:在应用运行过程中的一些关键点上卡住,以网络安全的名义,在那里让用户补充手机等信息(嘿嘿)。 这里以QQ-SDK的登录逻辑, 我们先来一波时序图。 用户表设计: iduser_nameuser_passworduser_mobilestatemore用户id用户名用户密码手机号码账号状态其他信息 3.1、以微博登录举例进入 Web2.0 时代 ,微博开放了第三方网站登录, 产品经理说这个我们得要, 加个用微博帐号就能登录我们的 App吧,而且得和我们自己的用户表关联。 流程: 客户端调用微博登录的界面,进行输入用户名、密码,登录成功后,会返回 access_token,通过 access_token调取 API接口获取用户信息。 服务端通过用户信息在我们用户表创建一个账号,以后,该第三方账号即可通过该微博账号直接进行登陆。 微博用户信息表设计: iduser_iduidaccess_token主键id用户id微博唯一id授权码噩梦来临 紧接着, QQ又开放用户登录了, 微信开放用户登录了,Github开放用户登录了。。。。。。一下子要接入好多家第三方登录了, 只能按照 “微博用户信息表” 新建一个表,重写一套各个第三方登录。 3.2、第三方登录表统一设计用户基础信息表: iduser_nameuser_passworduser_mobilestatemore用户id用户名用户密码手机号码账号状态其他信息用户授权信息表: iduser_idlogin_typeopenidaccess_token主键id用户id第三方登录类型(微信/QQ/微博等) 第三方应用的唯一标识 第三方的保存 token说明: 用户表分为 用户基础信息表 + 用户授权信息表; 所有和授权相关,都放在用户信息授权表, 用户信息表和用户授权表是一对多的关系 。 参考链接: 多账号统一登陆,账号模块的系统设计 面试官问:如何设计 QQ、微信等第三方多账号登陆 ?还要我说出数据库表设计! 一键登录了解一下? |
CopyRight 2018-2019 实验室设备网 版权所有 |