如果我已经登录到Facebook,请避免自动登录网站
本文关键字:登录 网站 Facebook 如果 | 更新日期: 2023-09-27 18:36:29
我的问题是:
如果我已经登录了Facebook,那么它会自动重定向页面并登录到我的网站。
我需要的是,即使我登录到Facebook,它也应该留在页面上,在我单击"facebook登录"按钮后,它将登录到我的网站。
<script>
// Load the SDK Asynchronously
(function(d) {
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) { return; }
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
} (document));
// Init the SDK upon load
window.fbAsyncInit = function() {
FB.init({
appId: 'XXXXXXXXXXX', // App ID
channelUrl: '//' + window.location.hostname + '/channel', // Path to your Channel File
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
xfbml: true // parse XFBML
});
FB.Event.subscribe('auth.login', function(response) {
if (response.status === 'connected') {
FB.api('/me', function(me) {
if (me.name) {
// the user is logged in and connected to your
// app, and response.authResponse supplies
// the user’s ID, a valid access token, a signed
// request, and the time the access token
// and signed request each expire
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
done1(uid, accessToken, me.email, me.name);
}
})
}
});
FB.Event.subscribe('auth.logout', function(response) {
});
// listen for and handle auth.statusChange events
FB.Event.subscribe('auth.statusChange', function(response) {
if (response.authResponse) {
// user has auth'd your app and is logged into Facebook
FB.api('/me', function(me) {
if (me.name) {
document.getElementById("authdisplayname").innerHTML = me.name;
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
done1(uid, accessToken, me.email, me.name);
}
}
})
document.getElementById('auth-loggedout').style.display = 'none';
document.getElementById('auth-loggedin').style.display = 'block';
} else {
// user has not auth'd your app, or is not logged into Facebook
document.getElementById('auth-loggedout').style.display = 'block';
document.getElementById('auth-loggedin').style.display = 'none';
}
});
$("#authlogoutlink").click(function() { FB.logout(function() { window.location.reload(); }); });
}
function done1(a, b, c, d) {
document.getElementById("<%= uid.ClientID %>").value = a;
document.getElementById("<%= token.ClientID %>").value = b;
window.location = "http://localhost:59019/fgfgf_2008/new_login.aspx?token=" + b + "&email=" + c + "&name=" + d;
}
</script>
网页代码:
<div id="fb-root">
</div>
<div>
<div id="auth-status">
<div id="auth-loggedout">
<div class="fb-login-button" onlogin="done();" autologoutlink="true" scope="email,user_checkins">
Log in with Facebook</div>
</div>
<div id="auth-loggedin" style="display: none">
Hi, <span id="authdisplayname" runat="server"></span>(<a href="#" id="authlogoutlink">logout</a>)
</div>
</div>
</div>
我不是Facebook登录问题的大师,但是在阅读了您的问题后,看起来如果Facebook用户登录到其Facebook帐户,那么它也会自动登录到您的应用程序。但是您希望它在用户单击登录按钮时发生,对。
你可以做的是,你可以创建一个"FacebookLogin()"函数,你可以在点击事件上调用该函数。
像这样:
在"网页"按钮上
<div class="fb-login-button" onclick="FacebookLogin()" onlogin="done();" autologoutlink="true" scope="email,user_checkins">
Log in with Facebook</div>
在您的情况下,我不太确定这一点,但它对我有用,请尝试一次,删除您的所有FB.Event.subscribe('auth.login', function(response)
函数,并使用FB.login()函数,然后将用户信息重定向到您想要的页面。在这里,我将其重定向到登录.aspx页面。
在 javascript 函数中
function FacebookLogin() {
FB.login(function(response) {
if (response.authResponse) {
window.location = "/Login.aspx?NewFacebookConnect=true&accessToken=" + response.authResponse.accessToken + "&userID=" + response.authResponse.userID;
}
});
}