使用 StormPath 的 Facebook 属性映射以检索 Facebook ID

Facebook Attribute Mapping with StormPath to retrieve the Facebook ID

这让我发疯。我正在尝试在登录后检索 Facebook id。我假设我必须使用属性映射才能实现这一点?有什么想法吗?

这些 Facebook 范围的文档有点混乱,"public_profile" 上的属性实际上在 Facebook 用户对象的根目录中可用,所以在 Stormpath 中你想将 id 映射到 customData.public_profile.id

嘿,我只是想我也会在这里回复,以防其他人对此有疑问。

我查看了 Facebook scopes reference page,它说 public_profile 是包含用户 ID 的范围。所以,我转到我的 Facebook 目录,在 'Scopes' 选项卡的 'Provider Configuration' 下,我添加了 public_profile。在 'Attribute Mappings' 选项卡下,我将 id 添加为属性名称并将 customData.id 设置为 'Stormpath Field Name'。

当用户使用他们的 Facebook 凭据登录到我的网络应用程序时,他们的 ID 会直接保存到他们帐户的自定义数据中:

{
  "id": "1260737122323"
}

要从帐户的自定义数据中获取此数据并将其显示在 React-Express sample project 的个人资料页面上,您需要做两件事:

  1. 确保 web.me.expand.customData 配置设置为 true 以便填充自定义数据字段,
  2. 使用 name="customData.id" 在个人资料页面上添加一个新字段,如下所示:

Access custom data fields by prefixing field names with customData section 下的文档中对此进行了介绍。