Php 我应该如何处理一个从Facebook注销但仍在我的网站上登录的用户?
我的设置方式是,当用户首次访问该网站时,它会要求他们使用Facebook登录。它获取一个访问令牌并在我的站点上创建一个会话 如果用户在任何时候注销facebook,比如在另一个选项卡中,会话仍将存在于我的应用程序中 我能看到的检测用户是否仍然登录Facebook的唯一方法是重新请求访问令牌,因为似乎没有办法检查现有的访问令牌是否仍然有效 我确实试着简单地做:Php 我应该如何处理一个从Facebook注销但仍在我的网站上登录的用户?,php,facebook-graph-api,Php,Facebook Graph Api,我的设置方式是,当用户首次访问该网站时,它会要求他们使用Facebook登录。它获取一个访问令牌并在我的站点上创建一个会话 如果用户在任何时候注销facebook,比如在另一个选项卡中,会话仍将存在于我的应用程序中 我能看到的检测用户是否仍然登录Facebook的唯一方法是重新请求访问令牌,因为似乎没有办法检查现有的访问令牌是否仍然有效 我确实试着简单地做: file_get_contents('https://graph.facebook.com/me?access_token=xxx')
file_get_contents('https://graph.facebook.com/me?access_token=xxx')
但是,由于令牌不再有效(因为用户已注销),file\u get\u contents返回一个错误,尽管在浏览器中查看此内容会显示oauth异常,但我假设file\u get\u contents由于HTTP响应代码而出错,这里有很多问题。。我只想分享一些见解:
你可以这样做,我想:
@$data=file_get_contents('https://graph.facebook.com/me?access_token=xxx');
foreach ($http_response_header as $rh) if (substr($rh, 0, 4)=='HTTP') list(,$status,)=explode(' ', $rh, 3);
if ($status==200 && $data)
//Token is good, parse data
else
//Token is no good
另外,我更希望不必经历从查询字符串获取代码然后发送代码的整个两步过程。我希望我的站点能够检测到当前访问令牌不再有效,并通知用户他们必须重新登录Facebook1。是的,我知道,当我说session时,我指的是我自己的申请session2。但是如果一个用户点击了我的页面,然后进入另一个选项卡,碰巧从Facebook注销,返回到我的站点,并尝试执行一个操作,该操作要求应用程序说为该用户写入状态,应用程序需要知道该用户已从Facebook注销,以便它可以请求一个新的访问令牌