检查Facebook登录状态:客户端vs服务器端
Check Facebook login status: Client side vs Server side
在我正在建设的网站,我需要检查用户是否登录到facebook。我有两种可能。我可以在服务器端使用如下PHP代码:
$facebook = new Facebook(array(
'appId' => _FACEBOOK_APP_ID,
'secret' => _FACEBOOK_SECRET,
'cookie' => true));
$me = $facebook->api("/me");
if (isset($me["id"]) {
// User is logged in.
} else {
// User is not logged in.
}
或者,我可以在客户端这样做,使用如下的javascript:
FB.getSession();
if (session != null) {
// User is logged in.
} else {
// User is not logged in
}
我想知道这两种方法的优缺点。
我只是想指出,您显示的JavaScript替代方案已弃用,不再工作,文档链接(http://developers.facebook.com/docs/reference/javascript/FB.getSession/)重定向到新的getAuthSession()函数来处理OAuth2
截至2011年12月13日,JavaScript SDK现在只支持OAuth 2.0身份验证。的在JS SDK中启用OAuth 2.0的功能是在7月份首次推出的。所有的应用程序都是在2011年10月1日进行测试和迁移。更改后,请确保您正在使用FB。getAuthResponse获取访问令牌,而不是FB.getSession。详细阅读改变她的
- 你的"服务器端"方法是不正确的。只要您正在使用PHP-SDK,我建议您遵循库附带的示例中的方法(在进行图形调用
$facebook->getSession();
之前检查会话)。你需要"明白"你真正"需要"的是什么!检查用户是否"登录到Facebook"并不意味着他"连接到您的应用程序/网站"
我建议你再读一遍Facebook文档,以更好地理解API
我想主要的区别在于,在客户端,连接是在客户端和facebook之间建立的。在服务器端,它在你的服务器和facebook之间。因此,如果你在服务器端做所有的事情,服务器的负载会变得很高。
相关文章:
- 客户端服务器REST API captcha实现
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何使用Socket.io将命令从客户端发送到服务器
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 将变量从客户端发送到服务器 |JSON vs POST
- 较大的HTML文件VS客户端模板
- 服务器端VS客户端呈现的模板性能
- Node.js客户端vs.服务器-相同的代码不同的结果
- 服务器端国际化vs客户端国际化
- 客户端加密:Javascript vs Java Applet vs Adobe Air
- node.js比客户端Javascript (vs. Chrome/V8)有任何性能优势吗?
- 服务器端vs客户端协议嗅探
- 运行更少的服务器端vs客户端
- MVC服务器端VS MVC客户端和RESTful api
- 客户端vs服务器端基础
- 检查Facebook登录状态:客户端vs服务器端
- Mongodb聚合vs客户端处理
- 客户端vs服务器端vs django后端混合模板
- Emberjs,服务器端vs客户端,都在