0

在我当前的项目中,我api('/me','GET')用于检索当前登录用户的用户数据。我的项目有一个与 Facebook 用户同步的选项,我也可以停用同步,问题是即使我退出 Facebook 并更改 Facebook 用户并再次同步,它仍然返回以前的用户数据。

这是代码片段:

$user_profile = $facebook->api('/me','GET');

$fname = $user_profile["first_name"];

$fname用于在同步后显示 Facebook 用户的名字,场景是:

*我的项目现在已同步到我的 Facebook 用户,然后我退出我的 Facebook 并重新同步我的项目。然而,它显示了我之前使用的用户的名字。

我似乎无法理解为什么它会保留以前用户的用户数据,它与新 Facebook 用户同步的唯一时间是我注销并重新登录我的网站项目时。顺便说一句,我正在使用 PHP SDK。

4

1 回答 1

1

那可能是因为access_token仍然有效。令牌通常保存在 cookie 中,因此即使用户从 Facebook 注销,此 cookie 仍然可用并且令牌保持有效,因为它不与登录或退出 Facebook 的用户相关联,而是与您的应用程序相关联,直到它过期了。

因此,您可以手动删除 cookie,以便您的应用在用户注销后无法访问它。或者,您可以通过向“/me/permissions”发送DELETE请求来使访问令牌无效。

我不是 100% 确定,但是当使用 JS SDK 时这个过程是自动的。

于 2013-03-01T04:54:09.213 回答