关于用户表结构设计(手机号、微信、QQ、微博等录注册和绑定) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
arden
V2EX    Node.js

关于用户表结构设计(手机号、微信、QQ、微博等录注册和绑定)

  •  1
     
  •   arden 2016-01-19 11:52:36 +08:00 7563 次点击
    这是一个创建于 3627 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家做 App 的时候最常见的就是会碰到用户登录注册系统。
    1 、可以手机号注册登录。
    2 、可以微信、 QQ 、微博第三方登录。
    3 、用户可以绑定手机号,也可以绑定微信、 QQ 、微博,也就是可以相互绑定。
    像这种情况,其实一个用户很有可能会产生 1-4 个帐号,但是了后面其实又可以把第三方登录的帐号绑定到任何一个其它帐号下。那么就会造成登录的时候到底使用哪一个用户 id 的情况。
    大家对这种情况的用户表结构设计有什么好的解决方案?

    10 条回复    2016-01-20 10:09:09 +08:00
    xujif
        1
    xujif  
       2016-01-19 11:56:06 +08:00
    user 表 social_account 表分开,用户名和手机号等登录的时候直接判断 user 表用户密码, social 登录的时候判断 social 表拉出 openid 后找对应的 user ,直接登录 user 。直接登录的时候都默认创建一个 user
    arden
        2
    arden  
    OP
       2016-01-19 12:00:31 +08:00
    但是有一个问题,如果用户第一次登录的时候用的是 微信,这样应该会直接创建一个 user ,那后面他又用手机号 注册了一个帐号,要邦定微信,怎么办。
    tabris17
        3
    tabris17  
       2016-01-19 12:04:53 +08:00
    user 表和 auth 表分开
    chztv
        4
    chztv  
       2016-01-19 12:12:11 +08:00
    @arden 你这个流程非正常。正常应该是微信登录后,去绑定手机。你用微信和手机各注册了一个账号,然后要互绑?只能提示该手机或者微信已经被注册……
    liuxey
        5
    liuxey  
       2016-01-19 12:12:47 +08:00
    @arden 在微信登陆后发现 openid 没有对应 user 时需要提示用户是要创建一个新的帐号还是绑定已有,如果是默认创建,那么必然会有这个问题
    chztv
        6
    chztv  
       2016-01-19 12:13:28 +08:00
    @arden 最好就是用手机作为用户唯一判断,微信登录后,直接绑定手机
    tntjackie
        7
    tntjackie  
       2016-01-20 09:47:15 +08:00
    @arden 这一类似的情况,如果要涉及到合并帐号,那应该做不到无损(因为手机帐号可能已经产生数据了)。假如手机号帐号和微信帐号绑定+合并,对于原有数据,要么合并,要么只保留一边的。

    一定有不完美的情况发生
    tntjackie
        8
    tntjackie  
       2016-01-20 09:51:15 +08:00
    @chztv 你讲的其实是“逻辑正常”情况,然而 App 大多数时候用微信 /微博 SSO 登录还是为了 1.块, 2.帮助记录同步数据。如果 SSO 登录后又提示手机号注册,我想用户会崩溃的。

    这一点,完全可以参考以前 Discuz 支持 QQ 登录后,丫的居然又要我完整注册,当时我就崩溃了
    springz
        9
    springz  
       2016-01-20 10:08:28 +08:00
    分开就行了, user 表单独维护,然后 auth 表去 对应 user @auth 说的很对。
    springz
        10
    springz  
       2016-01-20 10:09:09 +08:00
    就是说别管是怎么登陆的,和 user 表都没关系。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3053 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 11:40 PVG 19:40 LAX 03:40 JFK 06:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86