能介绍一下sf的第三方账号绑定、登录结合本地用户数据库的结构设计么?

在系统中账户、用户和登录认证的检查在数据存储层的结构是如何设计的呢,以及随后的认证和绑定(解除)的流程在设计中是如何解决的?

阅读 13.3k
评论
    6 个回答
    • 15.3k

    我们的设计非常简单,用了另外一个表专门来存放与第三方帐户的绑定,其实这个表的核心字段就是两个,一个是我们网站的用户id,一个是用户在第三方网站的id

    这样用户在用第三方帐号登录时,我们用oauth接口取到用户在第三方网站上的id,然后再从这个表中检索,这个id是否对应有我们网站的id。

    如果有,那么就登录这个id的用户。

    如果没有,那么为它注册一个新用户,并在绑定表中生成一条绑定纪录,以便下次登录查询。

    用户要解除绑定就只需要把绑定纪录从绑定表中删除就行了。

      • 348

      看了下,SF 这方面做得的确很干净简洁。
      如果用户第三方登录的话,设置密码时不需要填写当前密码。设置密码之后,应该可以照常邮箱、密码登录。
      学习了。

        • 1
        • 新人请关照

        第三方的id应该不是id吧,是不是对应每一个第三方用户生成的一个特殊的标示字符串?

          • 1
          • 新人请关照

          非常感谢!我一直没有思路刚刚看了2楼的回答让我顿然矛盾涉开。谢谢!

            • 1
            • 新人请关照

            如果用户先注册了帐号,然后再用第三方登录,那怎么绑定呢?

            该答案已被忽略,原因:

              • 1
              • 新人请关照

              如果用户先注册了帐号,然后再用第三方登录,那怎么绑定呢?

              该答案已被忽略,原因:

                撰写回答

                登录后参与交流、获取后续更新提醒

                社区建设
                合作问答

                欢迎来到 SegmentFault 0x 社区建设。这里可以讨论有关 SegmentFault 的一切,帮助我们改进产品、完善社...