在依赖 Auth0 进行 Facebook 身份验证的应用程序中选择用户 ID?

Choosing user ID in application that relies on Auth0 for Facebook authentication?

我正在使用 Angular 和 PHP 创建一个 TODO 列表应用程序。

我使用 Auth0 允许 Facebook 身份验证,过程完成后用户被重定向到添加 TODO 页面。但是,我对如何在我的 MySQL 数据库中保存该 TODO 项目感到困惑。我应该使用哪个用户 ID 来保存 TODO 项?

我正在 return 获取 Facebook 用户 ID;我可以使用 FB 用户 ID 保存它吗?

你可以,但是如果你使用 Facebook ID 作为你在你的 MySQL 数据库中识别用户的内部方式,你会降低你的应用程序更改的灵活性 .

例如,您将 Facebook ID 保存在数据类型支持 Facebook ID 格式的列中。现在想象一下,在两个月内您还想支持 Google 个用户。

Google ID 可能采用您选择的数据类型不支持的格式,因此您需要进行更改。此外,甚至可能 Google 和 Facebook 标识符不是全局唯一的,因此 Google 可以使用相同的标识符来代表用户 A,而在 Facebook 它用于用户 B。

最好的办法是保存与您管理的内部标识符相关联的数据,并将其映射到全球唯一的方式来识别您的用户;例如电子邮件地址。

鉴于您使用的是 Auth0,您可以利用它为您提供 globally unique identifier for each user 的事实。这意味着您以后可以支持对用户进行身份验证的新方法,并且 Auth0 将始终为您的应用程序提供一个全球唯一的 ID,即使在用户无需提供电子邮件地址即可进行身份验证的情况下也是如此。