Facebook Connect-身份验证和安全
我想开发一个外部网站使用Facebook连接,而不是自己的登录和注册过程 第一:请不要回答“参见facebook.com上的文档”之类的问题。我想我已经把那里的每一页都读了好几遍了。但我找不到答案 对于我的登录按钮,我使用以下代码:Facebook Connect-身份验证和安全,facebook,api,security,Facebook,Api,Security,我想开发一个外部网站使用Facebook连接,而不是自己的登录和注册过程 第一:请不要回答“参见facebook.com上的文档”之类的问题。我想我已经把那里的每一页都读了好几遍了。但我找不到答案 对于我的登录按钮,我使用以下代码: <fb:login-button v="2" size="large" autologoutlink="false" onlogin="window.location='/index.php'">Connect with Facebook</fb:
<fb:login-button v="2" size="large" autologoutlink="false" onlogin="window.location='/index.php'">Connect with Facebook</fb:login-button>
连接Facebook
要显示我使用的当前用户名,请执行以下操作:
<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在网站上解释了关于这个话题的一切
但我不明白我要做什么。我想做的是:
- 如果一个用户请求页面“members.php”,但他没有登录,应该会有一条消息,或者他应该被重定向。但Facebook的JavaScript功能并不安全,是吗?通常,我使用服务器端身份验证
- 我想知道用户是否已登录以显示登录按钮或注销链接
- 如果用户登录,我想知道他在Facebook上的用户id
提前谢谢你的帮助 不会做你需要的事情吗?如果你想真正安全,你应该在他试图让你服务器端的members.php使用for FB时检查他是否登录 如果你按下按钮,我会这样做:
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;
}
});
});
您认为Javascript不安全是正确的。您在Javascript中所做的一切都是为了改善用户体验,而不是加强安全性 如果使用官方PHP库,只需在members.PHP的开头添加以下代码行
$facebook = new Facebook(API_KEY, API_SECRET);
$fb_user = $facebook->require_login();
这将重定向用户到Facebook登录,如果没有登录 不,那是JavaScript,所以不安全。谢谢你的链接,我将使用这个库。