Для меня решение состояло в том, чтобы сначала проверить, вошел ли пользователь в Facebook, и выйти из него с помощью FB.logout. Затем откройте диалоговое окно входа в систему (FB.login), чтобы они могли войти в нужную учетную запись. При успешном входе в систему убедитесь, что зарегистрированный пользователь совпадает со ссылкой, по которой щелкнули.
Общий код выглядит примерно так
$('.fb-login').live('click', function() {
var accountName = $(this).attr('id');
//if user is already logged in, logout him so that he can authenticate correct account
FB.getLoginStatus(function(response) {
console.log(response);
if (response.status === 'connected') {
FB.logout(function(resp) {
console.log("Logged out of facebook")
});
}
}, true);
FB.login(function(response) {
if (response.authResponse) {
var accessToken = response.authResponse.accessToken;
console.log(response);
console.log('Fetching FB account information.... ');
FB.api('/me', function(response) {
console.log('Account name, ' + response.username + '.');
//validate that user authenticated the same account as the link he clicked on
if(accountName == response.username || accountName == response.id) {
//save token
} else {
//show error
}
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
}, {scope: 'perms'});
});