如果用户已经登录到FB,如何阻止我的Facebook登录弹出窗口出现
How do I stop my Facebook login popup from appearing if user is already logged into FB?
我有一个"使用Facebook登录"按钮,该按钮会生成一个弹出窗口,要求用户输入FB凭据。
如果用户已经加入了我的应用程序,离开了应用程序,然后返回(同时仍登录到Facebook),我希望用户能够单击"使用Facebook登录"而不显示弹出窗口。
目前,鉴于上一段中的情况,弹出窗口会打开一秒钟,然后页面重定向到应用程序的登录状态。
我已经在下面实现了以下代码 - 当涉及到 Javascript 时,我是一个完全的菜鸟,所以虽然答案可能很明显,但我不知道该怎么做!
window.fbAsyncInit = function() {
FB.init({
appId : '372191216164729',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};
(function(d) {
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
$(function() {
$('#fb_connect').click(function(e) {
e.preventDefault();
FB.login(function(response) {
if (response.authResponse) {
// $('#connect').html('Connected! Hitting OmniAuth callback (GET /auth/facebook/callback)...');
//this might not be the best way to do this ...
$('#welcome_form').submit();
// since we have cookies enabled, this request will allow omniauth to parse
// out the auth code from the signed request in the fbsr_XXX cookie
// $.getJSON('/auth/facebook/callback', function(json) {
// $('#connect').html('Connected! Callback complete.');
// $('#results').html(JSON.stringify(json));
// });
}
}, { scope: 'email, read_stream' });
});
});
当页面加载时,在加载并初始化 fb sdk 之后,使用 FB.getLoginStatus 方法检查用户状态。如果用户已登录并授权您的应用,则响应应具有访问令牌、用户 ID 等。
例如:
FB.getLoginStatus(function(response) {
if (response.status === "connected") {
// use the response.authResponse
}
else if (response.status === "not_authorized") {
FB.login(function(response) {
...
}, { scope: "email, read_stream" });
}
else {
// user not logged in to facebook
}
});
相关文章:
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- 如何检查用户已经登录facebook
- 通过Javascript SDK登录Facebook可以在移动设备和本地主机上使用,但不能在台式机上使用
- 允许通过Cordova上的Firebase登录Facebook
- 为移动网站高效登录Facebook
- 如何允许从iFrame登录facebook
- 如何使用jquery登录Facebook用户后检索数据
- Facebook JS SDK.我如何使用Facebook登录,而无需用户实际登录Facebook
- 在网络应用程序中登录Facebook
- 使用Sencha Touch 2在应用程序中登录Facebook
- Wierd文本:“#_=_”在成功登录Facebook后显示在URL上 春季社交
- 弹出窗口关闭并刷新成功登录Facebook的父页面
- 使用Firebase和Ionic登录Facebook后重定向视图
- 是否可以临时登录Facebook以共享链接
- 不使用javascript登录Facebook
- 使用Parse登录Facebook,但我得到--https://api.parse.com/1/users404--刷新
- Firebase authWithOAuthPopup登录Facebook发出警告
- 已登录Facebook,但未连接到我的应用程序
- Cordova:使用javascript api登录facebook不起作用
- 在原生ios6UIWebView中登录Facebook Javascript(在SAFARI上工作)