В любом случае я могу попросить пользователя подтвердить подлинность указанной учетной записи? - PullRequest
0 голосов
/ 26 января 2012

Мы разрешаем пользователям / компаниям добавлять свои учетные записи Facebook в нашу систему, и мы позволяем им аутентифицировать эти учетные записи после их добавления, чтобы мы могли получить подробные данные, которые не являются общедоступными в противном случае.поэтому нам нужно сообщить пользователю, с какой учетной записью проходить аутентификацию, возможно ли это?Допустим, пользователь уже вошел в Facebook с учетной записью x, затем он входит в наше приложение и выбирает для аутентификации учетную запись Y, поэтому он нажимает на ссылку аутентификации для Y и приступает к аутентификации, в любом случае есть ли у пользователя возможность аутентифицировать Y.

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Для меня решение состояло в том, чтобы сначала проверить, вошел ли пользователь в 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'});        
});     
0 голосов
/ 26 января 2012

Да, вы хотите иметь возможность выхода из системы на вашей странице.Поскольку неясно, как вы реализовали свою кнопку входа в систему, я приведу один пример:

Перенаправление на серверной стороне 302 пользователя на https://www.facebook.com/logout.php?next=YOUR_URL&access_token=ACCESS_TOKEN

Следующий = будетбыть местом, где пользователь может нажать, чтобы войти в учетную запись Y

Для ваших конкретных потребностей вы можете исследовать здесь: https://developers.facebook.com/docs/authentication/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...