[英]Facebook login JS - FB.Event.subscribe('auth.login') triggers without login button click
[英]FB.Event.subscribe and login-button
在我的页面上,有FB登录按钮代码。 用户可以通过使用FB登录按钮通过Facebook授权来加入我的网站。 我的网站允许用户注销,其中许多人喜欢这样做。
在为我的站点授权FB帐户后,请注销我的站点,因为会话事件永远不会触发(除非我取消了它的授权),所以我无法再登录。 我按FB登录按钮,将打开一个白页,然后立即关闭,没有任何反应。 这似乎是因为FB会话没有更改(它已经存在),所以该事件从未触发。 因此,我想知道是否除了隐藏FB的登录按钮并建立自己的会话(如果存在)之外,是否还有其他解决方法。 我尝试了“ auth.login”,但也没有触发。
按钮:
<fb:login-button perms="email,user_about_me,user_birthday">Login with Facebook</fb:login-button>
事件:
FB.Event.subscribe('auth.sessionChange', function (response) {
document.location.href = "/FacebookLogin.aspx";
});
重现步骤:
单击FB登录并授权应用程序(在本例中为我的网站)。 用户被重定向到我的FB登录页面,并在我的网站上创建了一个帐户。 用户现在登录到我的网站。
使用我的网站注销按钮注销我的网站
单击FB登录按钮以重新登录站点。 在此应将用户从步骤1重定向回该页面,以便他们可以登录到该站点。
在第3步中发生的所有事情是弹出白色页面几秒钟然后关闭。 该网站已经获得授权,并且不会触发会话事件。
如果我使用一个浏览器授权,然后使用其他浏览器返回,也会发生这种情况。 刚得到弹出窗口,它关闭并且什么也没有发生。 我必须错过一些重要的事情。
我遇到了同样的问题,但是过了一会儿,我这样做来解决了这个问题:
function after_login_button(){
FB.getLoginStatus(function(response) {
if (response.status=="connected") {
//User logged in! Do your code here
}
}, true);
}
您还需要在登录按钮上调用onlogin事件:
<fb:login-button onlogin="after_login_button()" perms="email,user_about_me,user_birthday">Login with Facebook</fb:login-button>
这对我有用=)。
PS-顺便说一句,我正在使用OAuth 2.0,您也应该将应用程序迁移到它,因为在开发人员区域中,他们说:“请记住,所有应用程序必须在10月1日之前迁移到OAuth 2.0”。
对不起,最终英语错误= S
请确保您正在执行FB.Event.subscribe
window.fbAsyncInit = function() {
FB.init({
......
)};
FB.Event.subscribe('auth.login', function(response){
.....
)};
};
我有同样的问题。 将其放入fbAsyncInit之后,它开始接受事件“ auth.login”。
希望这对您有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.