数据库中⽤户登录注册⽤户信息表怎么设计如何设计
⽤户登录
站内登录:⽤户信息+密码的验证形式;
⽤户名+密码,
手机密码⼿机+密码,
站外授权:第三⽅登录,
其实它也是⽤户信息+密码的形式,
⽤户信息即第三⽅系统中的ID(第三⽅登录⼀定会给⼀个在他们系统中的唯⼀标识),密码即access_token,只不过是⼀种有使⽤时效定期修改的密码。
所以我们把它分离出了⽤户基础信息表 + ⽤户授权信息表。
例如:
⽤户信息表 users
id int(10)序号
nickname varchar(20)昵称
headimg varchar(255)头像
测试数据记录:
id|nickname|headimg
1|红中铭科技|xxx/headimg1.jpg
2|你好中国⼈⼯智能|xxx/headimg2.jpg
--------------------------------------------------
⽤户登录授权信息表 user_auths
id int(10)⽤户序号(⽤户信息表-外键user_id)
login_type tinyint(2)登录类型(3:phone,2:email,1:uname)或(4:wechat,5:weibo)
openid varchar(50)⽤户的唯⼀标识(⼿机号号,邮箱地址,⽤户名或第三⽅应⽤的唯⼀标识)
login_token varchar(600)登录凭证(站内的保存⽤户密码,站外的不保存或保存api接⼝的access_token凭证)
注意:数据库字段结构仅供参考,如有更好的建议和意见请留⾔!
测试数据记录:
------------------------------------------------------------------------------------
id|user_id|login_type|openid|login_token
1|1|username|hzminc|4819db06a014cd14==>md5-bit16abc(hzminc)
2|1|phone|158********|e640626043da7f22==>md5-bit16abc(158********)
3|2|wechat|jm03026|SgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46
------------------------------------------------------------------------------------
以上两条测试数据分析,两个测试⽤户,第⼀个⽤户可以绑定账户登录也可以绑定⼿机号登陆,即可实现多⽅式登陆,第⼆⽤户测是通过第三⽅接⼝获得站内登录授权。
流程说明:
程序流程与代码实现:⽤户使⽤邮箱/⽤户名/⼿机号+密码登录验证的时,则先判断登录类型,若⽤户使⽤了⼿机号为登录类型,使⽤ SELECT * FROM user_auths WHERE type=’phone’ and openid=’158********’ 查询是否存在记录,如有,取出并判断数据库中login_token是否和登录提交登录表单数值相等,相符则通过授权验证,通过
user_id查询⽤户信息表获取⽤户相应的基本信息资料。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论