Facebook的登录按钮 [英] facebook Log In Button
本文介绍了Facebook的登录按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在我的网站上实施的Facebook认证(注册+登录)。一切工作正常,除了按钮显示即使我登录。在此先感谢
< H1 ID =欢迎>欢迎到我的网站< / H1>
< DIV ID =FB-根>< / DIV>
<跨度ID =FB-登录级=隐藏>
< FB:登录按钮注册-URL =http://lemiart.com/register.php>< / FB:登录按钮>
< / SPAN>
&所述; SCRIPT SRC =https://connect.facebook.net/en_US/all.js#appId=306738122732711&xfbml=1>&下; /脚本>
<脚本类型=文/ JavaScript的>
FB.init({APPID:306738122732711,状态:真的,饼干:真的,XFBML:真});FB.Event.subscribe('auth.login',函数(){
登录();
});FB.getLoginStatus(功能(响应){
如果(response.session){
//用户登录。让auth.login订阅处理这
}其他{
登出();
}
});的loggedIn =功能(){
FB.api('/我',函数(响应){
VAR欢迎=的document.getElementById('欢迎');
如果(欢迎)welcome.innerHTML + =''+ response.id;
的document.getElementById('FB-登录')的className =隐藏。
})
}loggedOut =功能(){
的document.getElementById('FB-登录')的className =。
}
< / SCRIPT>
解决方案
您目前的实现总是会提示用户登录。你或许需要做的是以下内容:
如果用户登录到您的应用程序,然后决定是否要显示FB写一个回调函数来FB.init,然后检查:登录按钮
这将是这个样子:
window.fbAsyncInit =功能(){
FB.init({
// ...
}); FB.getLoginStatus(功能(响应){
FB.getLoginStatus(功能(响应){
如果(response.session){
//用户登录。让auth.login订阅处理这
}其他{
登出();
}
});
};
I'm implementing facebook authentication (register + login) at my website. Everything works fine, except for the button showing even if I'm logged in. Thanks in advance
<h1 id="welcome">Welcome to my website</h1>
<div id="fb-root"></div>
<span id="fb-login" class="hidden">
<fb:login-button registration-url="http://lemiart.com/register.php"></fb:login-button>
</span>
<script src="https://connect.facebook.net/en_US/all.js#appId=306738122732711&xfbml=1"></script>
<script type="text/javascript">
FB.init({appId: '306738122732711', status: true, cookie: true, xfbml: true});
FB.Event.subscribe('auth.login', function(){
loggedIn();
});
FB.getLoginStatus(function(response){
if (response.session){
// user logged in. Let the auth.login subscription handle this
} else {
loggedOut();
}
});
loggedIn = function() {
FB.api('/me', function(response) {
var welcome = document.getElementById('welcome');
if (welcome) welcome.innerHTML += ' ' + response.id;
document.getElementById('fb-login').className = "hidden";
})
}
loggedOut = function() {
document.getElementById('fb-login').className="";
}
</script>
解决方案
Your current implementation will always prompt the user to login. What you perhaps need to do is the following:
write a callback function to FB.init, which then checks if the user is logged into your application and then decide if you want to show the fb:login-button.
It would look something like this:
window.fbAsyncInit = function() {
FB.init({
//...
});
FB.getLoginStatus(function(response){
FB.getLoginStatus(function(response){
if (response.session){
// user logged in. Let the auth.login subscription handle this
} else {
loggedOut();
}
});
};
这篇关于Facebook的登录按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文