登录的数据库设计

server端数据库设计

用户登录模块在数据库模块也需要好好设计,不能因为每添加一种第三方认证就修改数据库表。

(1)用户基本信息表User

UserIDavatarname...
2url1name1-
1url2name2-
3url3name3-

用户基本信息表包含一些用户基本信息,主键是用户的UserGuid,是唯一的。

(2)用户验证表User_auths

primaryUserIDidentity_typeidentifycredentialisFirstParty
12email12345@gmial.comMD5MD5MD5True
22accountaccountNameaccountPwMD5True
31phone12345678909pwMD5True
42wechatwechatIDaccess_token & refresh_tokenFalse
53weiboweiboIDaccess_token & refresh_tokenFalse

用户验证表,包含用户的各种登录方式,对列名解释:primaryKey:主键,唯一。UserGuid:用户唯一标识,在表中不唯一。identity_type:登录方式。identify:该方式的账户名或ID。isFirstParty:是否是第一方登录。credential:对于第一方是密码,对于第三方是access_tokenrefresh_token

很多现在的APP第三方登录成功获得用户基本资料后便丢弃第三方的access_tokenrefresh_token,其实如果为了真正的安全,还是需要保存下来,每次自动登录后通过第三方access_tokenrefresh_token来更新用户信息以及验证用户是否是真实身份。
UserGuid不唯一,可能有多个账号对应同一个UserGuid(第三方绑定到电话账号等等)。使用isFirstParty来标注是否是第一方,对于有些应用email/phone/accout的密码是同一个,修改的话就需要同时修改,需要通过标志位来定位这些第一方账号。

转载于:https://my.oschina.net/wanjubang/blog/849387

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值