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

时间:2016-04-12 02:02:29

标签: facebook authentication server facebook-access-token verification

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

  1. 用户已通过身份验证并
  2. 使用用户的电子邮件地址来检索它     私人信息。
  3. 我想使用FB身份验证。它看起来很直接,但有一个缺点,我相信人们可以告诉我如何解决或我缺少什么。

    1. 客户端初始化FB SDK并请求用户使用FB进行身份验证
    2. 步骤#1的成功结果是访问令牌。
    3. 我们可以使用此访问令牌进行另一次FB调用 电子邮件和姓名。
    4. 我的服务器如何知道经过身份验证的用户的电子邮件和名称? 我的理解是客户端不应该向服务器发送电子邮件和名称(它可以被黑客攻击而且不可信任),而是客户端应该发送收到的访问令牌,服务器应该用来获取用户的电子邮件和名称,但在服务器端。 请解释一下,给我一个例子,给我一个链接,告诉我如何在服务器上实现这一点,因为我的所有搜索都失败了。 再一次,我的后端是ASP MVC。

2 个答案:

答案 0 :(得分:0)

在服务器上,调用Graph 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

答案 1 :(得分:0)

我想我对ASP MVC中需要做的事情感到困惑,以获得具有访问令牌的用户信息。 建议的链接:https://developers.facebook.com/docs/graph-api/using-graph-api帮助我理解我真正需要的是进行HTTPS GET调用(从服务器)到“graph.facebook.com”传递访问cookie(从客户端接收)以检索我需要的信息,并排除被劫持/受损客户端传递错误电子邮件的可能性。 使用GRAPH API意味着将https调用放到GRAPH.facebook.com - 这对我来说并不清楚。