我在我的网站上使用PHP。我已经开发了一个登记表和登录表格。
生成facebook登录链接,用户单击并授权应用程序。它们被重定向到我的站点并拥有访问令牌。
我可以使用API调用,比如$this->facebook->api('/me/');我将调用放在try语句中并捕获任何异常。
它工作得很完美。
问题是,随机地,我的访问令牌将过期,因此api无法全部完成,异常将被捕获。我不知道这是为什么,但我想做的是无缝刷新访问令牌。也就是说,获得一个新的,并继续在网站上的用户会话无缝。
因此,我所做的是将它们保存在会话中,将用户重定向到catch语句中的facebook登录页面,然后成功地重新记录用户重定向回原来的位置。
这是可行的,但有一个问题。有这种情况:
try
{
$me = $CI->facebook->api('/me');
}
catch(FacebookApiException $e)
{
//redirect to fb login lin
}在每个页面上,每个页面的页面加载时间实际上是站点上每个页面的两倍-- Facebook本身就是慢的。
而不是1秒的页面加载,他们是2-3秒.我给它做了标杆,正因为如此.
我能做什么?HOw我可以为授权用户维护/刷新一个访问密钥,而不需要为我的用户花费大量的负载时间?
发布于 2013-01-06 17:17:27
编辑:我建议的解决方案是使用PHP2.0直接调用身份验证,对其余的Facebook调用使用PHP。
access_token的步骤获得Facebook开发人员文档。access_token。access_token,就可以通过调用Facebook::setAccessToken使PHP使用相同的Facebook对象存储在$_SESSION中,以便从其他页面进行api调用。此外,您还可以继续将扩展的access_token持久保存(在数据库中)。这将完全消除Facebook用于登录进程的通信。但是,请确保您已经采取了必要的安全防范措施来安全保护access_token(出于明显的原因),并且您的隐私策略也是如此。
https://stackoverflow.com/questions/14164938
复制相似问题