浅谈第三方登录用户表结构设计方案

2023-05-16

国民两大流量入口,大家不说也想到了,分别是微信和QQ。所以为了方便获取用户来源都对接了微信登录或者QQ登录,这一类型的第三方登录入口。今天就以对接微信登录、QQ登录与苹果登录。来说说对第三方用户体系与我方系统用户体系的对接的一些可行性方案。

0x01:我方用户表与第三方用户表同为一张表

一般系统都会有自己的一套用户系统,主管用户的注册、登录、登出、权限等。比如我方用户系统的用户表 t_user 大致包含如下一些字段:

id:主键id

username:用户名

age:用户年龄

mobile:手机号号码

password:登录密码

source_from:用户来源

auth_flag:用户认证状态

create_date:注册日期

以上是最简单的一些用户信息了,那现在要对接第三方用户体系。比如,对接微信。这是最普遍的第三方用户对接了。因为这种方案我方用户表与第三方用户表在一张表里,所以需要在用户表 t_user 中添加一个标识,表示我方用户与微信用户唯一绑定的字段,一般使用微信的 openid,这样的话需要修改表,添加一个wx_openid字段

id:主键id

username:用户名

age:用户年龄

mobile:手机号号码

password:登录密码

source_from:用户来源

auth_flag:用户认证状态

wx_openid:微信的openid

create_date:注册日期

如果有要对接 QQ 和 Apple,这样的话有的修改表:

id:主键id

username:用户名

age:用户年龄

mobile:手机号号码

password:登录密码

source_from:用户来源

auth_flag:用户认证状态

wx_openid:微信openid

qq_openid:qq openid

appleid:苹果id

create_date:注册日期

这种方案设计简单,只要对接一个第三方,就是需要对原来的用户表进行修改,如果对接的第三方过多,用户表就慢慢的变得非常臃肿。从另外一个方面看,对原来用户代码进行修改。

0x02:我方用户表一张表、第三方用户表一张表

由于第一种方案如果对接额外的第三方需要不断的修改用户,以及原来的代码逻辑,对生产可能造成不确定因素。所以可以采取另外一种方案我方用户表一张表、第三方用户表一张表这种方案。比如用户表 t_user 设计大致如下:

id:主键id

username:用户名

age:用户年龄

mobile:手机号号码

password:登录密码

source_from:用户来源

auth_flag:用户认证状态

create_date:注册日期
  • 第三方用户表 t_third_acount 设计大致如下:
user_id:对应 t_user的用户id

third_unique_acount:第三方唯一用户id,可以是微信的openid,可以是QQ的openid,抑或苹果id

type:标识第三方类型,这里规定1.代表微信,2.代表QQ,3.代表苹果

bind_flag:标识是否绑定,1绑定,2解绑

create_date:绑定时间

这样设计的话,以后一般不需要修改表结构;但是新添加第三方用户对接时,还是免不了需要对原来的代码逻辑做改动。

0x03:我方用户表一张表、第三方用户表多张表

基于第二种方案,第三方用户表使用了一个 type 字段来表示不同的第三方用户体系,通过不断的新增不同的枚举来标识不同的第三方。所以可以去除这个字段,然后不同的第三方使用不同的表来标识。比如用户表 t_user 设计大致如下:

id:主键id

username:用户名

age:用户年龄

mobile:手机号号码

password:登录密码

source_from:用户来源

auth_flag:用户认证状态

create_date:注册日期

+ 微信用户体系的表 t_wechat_acount 设计大致如下如下:

user_id:对应 t_user的用户id

wx_openid:微信的openid

bind_flag:标识是否绑定,1绑定,2解绑

create_date:绑定时间
  • QQ用户体系的表 t_qq_acount 设计大致如下如下:
user_id:对应 t_user的用户id

qq_openid:QQ的openid

bind_flag:标识是否绑定,1绑定,2解绑

create_date:绑定时间
  • 苹果用户体系的表 t_apple_acount 设计大致如下如下:
user_id:对应 t_user的用户id

appleid:苹果id

bind_flag:标识是否绑定,1绑定,2解绑

create_date:绑定时间

这些方案的话,第三方用户表就有点膨胀的意思,系统对接了多少个第三方用户体系,就有多少张第三方用户体系表。

以上三种方案,属谁最优,不下定论。我觉得根据项目的要求,满足自身项目的需要,符合可用的业务场景的方案就是最优解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅谈第三方登录用户表结构设计方案 的相关文章

随机推荐

  • 使用NSIS制作驱动安装包

    win10环境安装驱动的发现 xff1a 1 会在C Windows INF目录下的setupapi dev log文件中记录信息 xff0c 包括安装命令 xff0c 安装结果 2 可以使用pnputil安装驱动 由于安装后的inf文件会
  • 学习科大讯飞的StatQuest机器学习课笔记(1)

    简介 1 机器学习都是关于作出预测和分类的 2 原始数据被称为训练数据 xff0c 使用测试数据来评估机器学习方法 xff0c 不要被机器学习方法与训练数据的匹配程度所愚弄 3 对训练数据拟合效果好 xff0c 但预测效果不佳 xff0c
  • 学习科大讯飞的StatQuest机器学习课笔记(2)

    Day2学习笔记07 20 ROC和AUC 1 假设一个逻辑回归曲线可以推测出一个结果的概率 xff0c 然后选取某个概率作为分类的阈值 由于使用不同概率作为分类的阈值会计算出不同的敏感性和特异性 xff0c 因此为了评价哪个概率会得出最佳
  • 学习科大讯飞的StatQuest机器学习课笔记(3)

    Day3学习笔记07 21 最小二乘法 线性回归 用数据拟合一条直线y 61 ax 43 b 1 我们要使观测值与直线之间的距离 残差 的平方最小化 2 通过求导找到它等于0时的点 3 这条直线使平方和达到了最小化 odds 胜负比 和od
  • 七款经典4.2v锂电池充电电路图详解 - 全文

    4 2v锂电池充电电路图 xff08 一 xff09 xff1a 锂电池充电均衡电路 这个均衡电路用的是三个一模一样的并联稳压电路组成的 xff0c 每个电池上并一个 电路原理图如下 xff1a 每个稳压电源都调节到4 2V 均衡的原理是
  • sqlserver删除master数据库中的用户创建的表

    最近在使用SQL Server2019 xff0c 在程序中执行建表语句默认建到了master数据库中 xff0c 使用SSMS SQL Server Management studio 执行以下语句时提示 xff1a 不允许对系统目录进行
  • QLineEdit和QDateTimeEdit等含编辑框使用stylesheet配置背景透明时,鼠标进入离开背景闪烁问题的解决

    在使用QLineEdit和QDateTimeEdit等含编辑框的控件时如果使用stylesheet设置背景透明如下 xff1a QLineEdit background color transparent color white QLine
  • 使用Poco库进行加解密和签名验签

    最近一个朋友让我帮忙找一下使用Poco库进行非对称加密的例子 xff0c 通过百度 xff0c Google找到两个不错的在此总结一下 xff1a Poco开源代码库地址 xff1a https github com pocoproject
  • 走进开源代码(一)

    目录 前言 从哪里开始 xff1f 总结 前言 今天是个既特殊又年轻的节日 双十一 剁手节 xff0c 也算是个有纪念意义的开端吧 xff01 上周参加了系统架构设计师考试 xff0c 论文没有写完 xff0c 虽然这次肯定是过不了了 xf
  • 走进开源代码(二)

    目录 一 下载源代码 xff0c 了解目录结构 二 src目录介绍 总结 上一篇文章写了通过两篇文章大致了解比特币项目的目的和解决问题的策略 xff0c 本节正式走进源代码 xff1b 一 下载源代码 xff0c 了解目录结构 比特币项目的
  • [转]深度剖析闪电网络

    转自 xff1a https new qq com omn 20201108 20201108A04RZW00 html 闪电网络 xff08 Lighting Network xff09 是比特币的二层扩容方案 xff0c 由 Josep
  • 听李天飞《大话西游》有感

    作为一个老程序员搬砖之余喜欢看些传统文化相关的东西 xff0c 去年春节期间由于新冠疫情影响 xff0c 很多培训机构都把免费的网络课程作为力推的上课形式 xff0c 其中也包括学而思 在陪孩子上学而思网校的课程时 xff0c 有个 李天飞
  • 走进开源代码(三)

    由于工作的原因 xff0c 虽然是一名C 43 43 程序员 xff0c 平时工作中还是使用的C 43 43 99 xff0c 而比特币v0 20 1的源码是C 43 43 11写的 xff0c 虽然之前对C 43 43 11也有些了解 x
  • Linux下开发Qt界面程序时命令行传参数的一个坑

    今天在Linux下开发Qt界面程序时发现一个奇怪的问题 xff0c 程序执行如下命令却会打印日志和弹出对话框 test name xxx 代码如下 xff1a include lt QApplication gt include lt QM
  • 树莓派为连接不同Wifi分配固定IP的方法

    由于在家里和外面两种场景下使用树莓派 xff0c 家里的wifi是192 168 3 1 xff0c 在外面我用的我的360随身wifi xff0c 它的IP固定是192 168 253 1 xff08 百度未找到修改它的方法 xff09
  • ajax-Access-Control-Allow-Origin跨域问题解决

    首先 xff0c 在解决之个问题之前 xff0c 我们要弄明白为什么会出现跨域问题 跨域问题是浏览器对于ajax请求的一种安全限制 xff1a 一个页面发起的ajax请求 xff0c 只能是与当前页域名相同的路径 xff0c 这能有效的阻止
  • SSH Config 那些你所知道和不知道的事

    SSH xff08 Secure Shell xff09 是什么 xff1f 是一项创建在应用层和传输层基础上的安全协议 xff0c 为计算机上的 Shell xff08 壳层 xff09 提供安全的传输和使用环境 也是专为远程登录会话和其
  • 在虚拟云主机部署pure-ftpd后,从另一个虚拟云主机连接该ftp服务的一些问题

    问题描述 xff1a 最近的一个项目需要在公网搭建一个ftp服务器 xff0c 同时开发的Java程序需要运行在另一台公网服务器上 xff0c 开始时在本地开发机器上测试 xff0c 连接公网的ftp服务器 xff0c 上传文件都没有问题
  • 树莓派4B安装Ros 2 Foxy踩坑记录

    1 通过树莓派官方提供的写卡工具raspberry pi imager选择Ubuntu 20 04 5 xff08 64 bit xff09 xff0c 因为我打算用一个8G的存储卡安装ros 2 xff0c Ubuntu 22 04的比较
  • 浅谈第三方登录用户表结构设计方案

    国民两大流量入口 xff0c 大家不说也想到了 xff0c 分别是微信和QQ 所以为了方便获取用户来源都对接了微信登录或者QQ登录 xff0c 这一类型的第三方登录入口 今天就以对接微信登录 QQ登录与苹果登录 来说说对第三方用户体系与我方