2012-06-12 1 views
1

Я играю с помощью Javascript SDK для реализации действия Facebook Connect. Он уже работает, но проблема в том, что каждый раз, когда я пытаюсь снова войти в приложение, пользователь должен повторно ввести свой пароль в facebook.FB.login всегда спрашивает мой пароль (даже если я уже вошел в систему)

Я уверен, что есть возможность сделать этот шаг без ввода пароля, если вы уже вошли в систему в facebook (я видел это на многих веб-страницах). Но как? Документация http://developers.facebook.com/docs/reference/javascript/FB.login/ и даже исходный код не объясняет, как это сделать:

«@param OPTS {Object} (факультативные) Параметры для изменения поведения входа в систему.»

Моя реализация прямо сейчас, как это:

function login(){ 
    FB.login(function(response) { 
    if (response.authResponse) { 

    $(".fb_login").hide(); 
    $(".fb_logout").show(); 

    FB.api('/me', function(response) { 
     register_user(response.id, response.name); 
    }); 

    } else { 
    alert('User cancelled login or did not fully authorize.'); 
    } 
}); 
} 

И я призываю FB.init так:

FB.init({ 
    appId  : 'xxxxxxxxx', // App ID 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : true // parse XFBML 
}); 

Может быть, это должно быть изменение в FB.init или некоторые вариант при вызове в FB.login. Есть идеи?

Заранее спасибо, Raimon Bosch.

+0

кажется, что основная проблема заключается в мой выход из системы действий. Когда пользователь выходит из моего приложения, он выходит из Facebook. Вот почему они должны повторно вводить пароль все время. Таким образом, решение должно создать действие выхода из системы немного чище. – raimonbosch

+0

Итак, вы уже знаете ответ на вопрос (а именно, не выходите из Facebook при выходе из приложения)? Тогда, пожалуйста, добавьте это как ответ и примите его. :-) – Gijs

+0

Что очень удивительно, почему, черт возьми, ваше приложение должно закрыть сеанс facebook пользователя? Мое приложение - мое приложение, оно не имеет ничего общего с facebook, кроме как для входа в систему. http://developers.facebook.com/docs/reference/javascript/FB.logout/ «FB.logout выведет пользователя из вашего сайта и Facebook» – raimonbosch

ответ

1

Существует метод FB.getLoginStatus, который вы можете использовать, чтобы проверить, если пользователь уже LoggedIn:

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
    var accessToken = response.authResponse.accessToken; 
    //you are loggedin 
    } else if (response.status === 'not_authorized') { 
    //loggedin but not authorized your app 
    } else { 
    // the user isn't logged in to Facebook. 
    } 
}); 

вы имели в виду что-то вроде этого

+1

Нет, это нормально. Когда я вхожу в систему, я использую этот метод для определения того, зарегистрирован ли пользователь или нет, и он работает. Проблема в том, что всплывающее окно facebook connect всегда запрашивает пароль, даже если я уже зарегистрирован в facebook. – raimonbosch

Смежные вопросы