facebook登录循环

facebook login looping around

本文关键字:循环 登录 facebook      更新时间:2023-09-26

我在我的网站上使用facebook javascript SDK作为登录按钮,它工作正常,但我在两个用例中丢失了

  1. 只要facebookcookie可用,它就会从index.php重定向到event.php页面,即使我在点击事件时启动FB.login()函数
  2. 当用户点击我网站上的注销按钮时,我会将其重定向到index.php,加载index.php页面后,它会再次重定向到event.php页面

这是我在index.php 中的代码

<script src="//connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
  appId      : '375834632488230', // App ID
  status     : true, // check login status
  cookie     : true, // enable cookies to allow the server to access the session
  xfbml      : true  // parse XFBML
});
// Additional initialization code here
FB.Event.subscribe('auth.login', function(response) { 
window.location="http://mysite.com/event.php";
});
function doLogin(){
console.log("clicked on fb");
FB.login(function(response) {
  if (response.session) {
  FB.api('/me?fields=email,location,name,first_name,last_name,picture',
   function (response) {       });
  }
} , {scope:'email'}); 
}
</script>
<a href="#" id="fblogin"  class="signinfacebook" onclick="doLogin()">Sign in with
Facebook</a>

回答我自己的问题

删除此代码:

FB.Event.subscribe('auth.login', function(response) { 
    window.location="http://mysite.com/event.php";
});

这不应用于此上下文。

然后将这一行包含在FB.Login()函数中:

if(response.status=='connected'){
    window.location="http://mysite.com/event.php";
} else {
    console.log("login failed");
}

我认为这应该很好