app服务端server端数据库设计详解手机开发

app服务端server端数据库设计详解手机开发

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


一.用户基本信息表User

UserID     avatar     name     …

    2     url1     name1     –

    1     url2     name2     –

    3     url3     name3     –

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


二.用户验证表User_auths

primary     UserID     identity_type     identify     credential     isFirstParty

        1             2     email     
[email protected]     MD5MD5MD5     True

        2             2     account     accountName     accountPwMD5     True

        3             1     phone     12345678909     pwMD5     True

        4             2     wechat     wechatID     access_token & refresh_token     False

        5             3     weibo     weiboID     access_token & refresh_token     False

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

很多现在的APP第三方登录成功获得用户基本资料后便丢弃第三方的 access_token 和 refresh_token ,其实如果为了真正的安全,还是需要保存下来,每次自动登录后通过第三方 access_token 和 refresh_token 来更新用户信息以及验证用户是否是真实身份。

UserGuid 不唯一,可能有多个账号对应同一个 UserGuid (第三方绑定到电话账号等等)。使用 isFirstParty 来标注是否是第一方,对于有些应用email/phone/accout的密码是同一个,修改的话就需要同时修改,需要通过标志位来定位这些第一方账号。

app服务端server端数据库设计详解手机开发

转载请注明来源网站:blog.ytso.com谢谢!

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/6143.html

(0)
上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐

发表回复

登录后才能评论