【发布时间】:2013-08-26 15:05:36
【问题描述】:
也许我的做法是错误的,但我有一个允许 facebook 登录的网站。
- 如果用户已经在我的网站上注册了
- 已登录 facebook 但未登录我的网站
-
访问登录页面时,我会检查他们的 facebook 登录状态并通过 - 获取
response.status === 'connected'FB.Event.subscribe('auth.authResponseChange', function (response) { if (response.status === 'connected') { var s = JSON.stringify(response.authResponse); LogMeIn(s, function(response) { HandleAjaxError(response, function(msg) { window.location = '/_/'; }); }); } } 然后我想将他们的 authResponse 对象传递给服务器,并在我以该用户身份登录之前确认此用户 ID 与此令牌一起使用
我已经阅读了简单地获取 -
的 json 内容https://graph.facebook.com/{userID}?access_token={accessToken}
如果它没有返回错误,那很好!但是在测试此方法时,我注意到相同的 access_token 对两个不同的用户 ID 有效(这意味着它没有为未在我的计算机上登录的用户 ID 返回错误)。相反,它返回了带有名称、位置等的 facebook 用户对象。
这真的让我感到惊讶,正如我所期望的 access_token 到 work only with a single user id。
为了防止有人在继续执行脚本之前简单地更改用户 ID,我需要通过服务器端进行身份验证。有什么方法可以做到这一点?
证明,去这些链接查看个人资料信息
我的个人资料-
另一个具有相同 access_token 的用户 ID-
【问题讨论】: