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

Posted

技术标签:

【中文标题】在依赖 Auth0 进行 Facebook 身份验证的应用程序中选择用户 ID?【英文标题】:Choosing user ID in application that relies on Auth0 for Facebook authentication? 【发布时间】:2017-04-03 09:25:14 【问题描述】:

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

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

作为回报,我将获得 Facebook 用户 ID;我可以使用 FB 用户 ID 保存它吗?

【问题讨论】:

【参考方案1】:

您可以,但如果您使用 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,即使在用户无需提供电子邮件地址进行身份验证的情况下也是如此。

【讨论】:

@Angelo 太好了,这就是我正在寻找的答案。因此,当用户登录系统时,我将保存该数据,然后使用唯一标识符(即电子邮件)来保存数据。由于我使用的是 auth0,因此每次用户登录我的系统时,它都会为我提供相同的唯一标识符。

以上是关于在依赖 Auth0 进行 Facebook 身份验证的应用程序中选择用户 ID?的主要内容,如果未能解决你的问题,请参考以下文章

Auth0.com,它是如何运作的?

facebook怎么验证?

auth0 401 错误,在尝试身份验证代码交换时进行身份验证

如果用户已经通过登录页面或 auth0 进行了身份验证,我们是不是需要在 websocket 连接中对用户进行身份验证?

Auth0 - 在 Owin 上使用带有承载访问令牌的 JWT 使用 RS256 进行身份验证

带有 auth0-lock 的 Auth0 仅在使用调试器时进行身份验证,以缓慢单步执行代码