用于存储 FB 或 Google+ 的 SSO 信息的数据库表结构

dev*_*per 5 oauth single-sign-on facebook-graph-api google-oauth

我有一个网络应用程序,我想使用用户的 Facebook 或 Google+/Google App 帐户添加单点登录功能。

我有一个USERS存储用户登录信息的表。所有用户无论是使用 FB 还是 Google+ 注册,都必须在此表中拥有记录。

我正在尝试找出需要存储在数据库中的信息,以便将USERS表记录链接到 FB 或 Google 信息。

Facebook文档指出

应用程序应将令牌与 一起存储在数据库中user_id 以识别它。

那么我应该创建一个名为SSO_LOOKUP以下列的表:

  • USER_ID // 链接到我的USER表的用户 ID
  • PROVIDER_ID // 用户的 FB 或 Google 帐户 ID
  • PROVIDER_TYPE // 表示是否是Google、FB、Twitter等
  • ACCESS_TOKEN

DaI*_*mTo 0

从技术上讲,您真正需要存储的是Refresh Token某种标志类型标识符,告诉您它是 Facebook 还是 Google 刷新令牌。然后您可以查询 API 来获取您需要的任何信息。存储用户 ID 将是一个好主意,因为如果他们注销然后重新验证,即使刷新令牌已更改,您仍然会知道它是谁。其他任何东西都有点过头了,因为无论如何,当您进行调用时,您都会从 API 中获取该信息。

如果您想在那里存储名称和最近的图片,则可以在获取信息之前显示这些图片。然后在您首次访问 API 后更新对数据的任何更改。但这基本上取决于您想要如何设计事物,以及我们在这里讨论的应用程序类型。