3

在我当前的应用程序中,我想为用户提供通过密码或任何社交网络或开放 ID 平台连接他们的可能性。

如果他们将他们的帐户链接到我的应用程序,我也会在他们的墙上(主要是 Facebook、Twitter、嗡嗡声)发布消息。

我面临的问题是如何在数据库中组织我的表。

我会这样做,但没有任何信念:

User(first_name, last_name, email)
LocalUser(password, user_id)
FacebookUser(token, user_id)
GoogleUser(token, user_id)
EtcUser(...)

如果用户通过 Facebook 连接,我将尽可能填写 User 表中的所有数据,然后他将有可能将我的应用程序连接到其他网络(如 Google 和 Twitter)。

但是这个实现的问题是,如果用户通过 Facebook 连接一次,使用该应用程序而不连接到其他社交层,然后通过 Google 连接自己,该应用程序将无法识别它是同一个人,并会创建一个新帐户, 从头开始​​。

此外,会话表(FacebookUser、GoogleUser 等)和链接帐户的表可能不同(可能访问社交网络的令牌和使用应用程序的密钥不同?)

我已经有一个像这样的会话表:

// Maybe I should add a new column for identifying from which type come the token (Local, Facebook, Google, etc)
Session(date, ip, token, user_id)

你觉得这个方法好吗?你有更好的吗?

谢谢 !非常 !

4

0 回答 0