如何使用客户端 javascript SDK 收到的 FB 访问令牌验证服务器上的电子邮件和名称

How to verify email and name on a server using FB access token received by javascript SDK on a client side

我有一个客户端 (HTML+JavaScript) 和一个服务器 (ASP MVC),我需要向用户提供一些私人信息。为此,我需要验证

  1. 用户已通过身份验证并且
  2. 使用用户的电子邮件地址来检索其 私人信息。

我想使用FB认证。它看起来很简单,但有一个缺陷,我相信人们可以告诉我如何解决或者我遗漏了什么。

  1. 客户端初始化FB SDK并请求用户使用FB进行身份验证
  2. 第 1 步成功的结果是访问令牌。
  3. 我们可以使用此访问令牌再次调用 FB 以检索 电子邮件和姓名。

我的服务器如何知道经过身份验证的用户的电子邮件和姓名是什么? 我的理解是客户端不应该向服务器发送电子邮件和名称(它可以被黑客攻击并且不能被信任)而是客户端应该发送接收到的访问令牌,服务器应该使用它来获取用户的电子邮件和姓名,但在服务器端。 请解释,给我一个例子,指出 link 关于如何在服务器上实现它,因为我对它的所有搜索都失败了。 还有一次,我的后端是 ASP MVC。

在服务器上,调用图表 API:

https://graph.facebook.com/me?fields=name,email

使用访问令牌,您将获得正确的数据:

https://graph.facebook.com/me?fields=name,email&access_token=xxx

顺便说一句,您还应该阅读以下内容:https://developers.facebook.com/docs/graph-api/securing-requests

我想我对在 ASP MVC 中需要做什么来获取具有访问令牌的用户信息感到困惑。 建议的 link: https://developers.facebook.com/docs/graph-api/using-graph-api 帮助我理解我真正需要的是进行 HTTPS GET 调用(从服务器)到 "graph.facebook.com" 传递访问 cookie(从客户端接收)到检索我需要的信息并排除 hijacked/compromised 客户向我发送错误电子邮件的可能性。 使用 GRAPH API 意味着对 GRAPH.facebook.com 进行 https 调用 - 我不清楚。