在依赖 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 401 错误,在尝试身份验证代码交换时进行身份验证
如果用户已经通过登录页面或 auth0 进行了身份验证,我们是不是需要在 websocket 连接中对用户进行身份验证?