在系统中账户、用户和登录认证的检查在数据存储层的结构是如何设计的呢,以及随后的认证和绑定(解除)的流程在设计中是如何解决的?
在系统中账户、用户和登录认证的检查在数据存储层的结构是如何设计的呢,以及随后的认证和绑定(解除)的流程在设计中是如何解决的?
我们的设计非常简单,用了另外一个表专门来存放与第三方帐户的绑定,其实这个表的核心字段就是两个,一个是我们网站的用户id
,一个是用户在第三方网站的id
。
这样用户在用第三方帐号登录时,我们用oauth接口取到用户在第三方网站上的id,然后再从这个表中检索,这个id是否对应有我们网站的id。
如果有,那么就登录这个id的用户。
如果没有,那么为它注册一个新用户,并在绑定表中生成一条绑定纪录,以便下次登录查询。
用户要解除绑定就只需要把绑定纪录从绑定表中删除就行了。
第三方的id应该不是id吧,是不是对应每一个第三方用户生成的一个特殊的标示字符串?
的确是,以Facebook为例,一般同一个user对不同的第三方分发的id是不一样的