我想使用Facebook Connect开发外部网站,而不是自己的登录和注册过程。
首先:请不要回答“请参阅facebook.com上的文档”。我想过,我已经多次阅读过所有页面。但我找不到答案。
对于我的登录按钮,我使用以下代码:
<fb:login-button v="2" size="large" autologoutlink="false" onlogin="window.location='/index.php'">Connect with Facebook</fb:login-button>
要显示我使用的当前用户名:
<fb:name uid="loggedinuser" linked="true" firstnameonly="false" possessive="false" useyou="false" ifcantsee="Facebook-User"></fb:name>
最后,对于注销,我使用以下链接:
<a href="#" onclick="javascript:FB.Connect.logoutAndRedirect('/index.php'); return false">Logout</a>
这很容易。它在文档中得到了很好的解释。
但是当我想检测用户是否登录时,我的问题就开始了。 Facebook在this page上解释了有关此主题的所有内容。
但我不明白自己要做什么。我想要做的是:
提前感谢您的帮助!
答案 0 :(得分:4)
Javascript不安全你是对的。您在Javascript中所做的一切都是为了改善用户体验,而不是强制执行安全性。
如果您使用官方PHP库,则只需在members.php的开头添加以下代码行,
$facebook = new Facebook(API_KEY, API_SECRET);
$fb_user = $facebook->require_login();
如果没有登录,这会将用户重定向到Facebook进行登录。
答案 1 :(得分:0)
如果您想要非常安全,那么当他尝试使用PHP library为FB获取服务器端的members.php时,应检查他是否已登录。
按钮,我会做这样的事情:
FB.Connect.init(...);
FB.ensureInit(function() {
FB.Connect.get_status().waitUntilReady( function( status ) {
switch ( status ) {
case FB.ConnectState.connected:
hideLoginButton();
loggedIn = true;
break;
case FB.ConnectState.appNotAuthorized:
case FB.ConnectState.userNotLoggedIn:
showLoginButton();
loggedIn = false;
}
});
});
答案 2 :(得分:-1)
FB.Connect.get_status()不会做你需要的吗?