我有用C#编写的MVC5项目,我使用Facebook Javascript SDK,我想知道在使用Facebook登录时是否总能询问用户。
示例场景:
用户A使用Facebook登录我的网站,他没有注销。他的会话从我的网站到期,但他的Facebook仍然会登录。用户B使用同一台电脑登录使用Facebook,因为用户A没有注销他的Facebook,用户B将自动登录用户A Facebook帐户,我需要类似的东西“这是你的Facebook帐户吗?”让用户登录前提示。这是由Facebook提供的吗?到目前为止我四处寻找但没有运气,'response.status'已经'连接'之后'FB.login'无法调用。
我的代码:
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
$('#btnFBlogin').click(function () {
FB.api('/me', function (response) {
location.href = BASE_URL + 'Membership/LogInWithFacebook';
});
})
} else {
$('#btnFBlogin').click(function () {
FB.login(function (response) {
if (response.status === 'connected') {
FB.api('/me', function (response) {
location.href = BASE_URL + 'Membership/LogInWithFacebook';
});
}
}, { scope: 'email,user_birthday' });
})
}
});
任何帮助将不胜感激。
答案 0 :(得分:0)
流程应该是这样的:
你应该有一个自定义的登录按钮(不是默认的fb-login按钮),不确定,但我猜你只使用自定义按钮。
点击后,使用FB.getLoginStatus()
检查用户是否已连接。
如果是,请使用FB.logout()
从Facebook注销用户,然后使用FB.login()
如果没有,请使用FB.login()
。
<小时/> 的代码强>
$('#btnFBlogin').click(function () {
FB.getLoginStatus(function (response) {
if (response.status === 'connected') {
FB.logout(function(response) {
Login();
});
}else{
Login();
}
});
});
function Login(){
FB.login(function (response) {
if (response.status === 'connected') {
FB.api('/me', function (response) {
location.href = BASE_URL + 'Membership/LogInWithFacebook';
});
}
}, { scope: 'email,user_birthday' });
}