PHP SDK Требуется два входа ... сначала не распознается - PullRequest
0 голосов
/ 24 января 2012

Я использую следующий код для проверки подлинности пользователей, вошедших в систему или нет. Хотя пользователи могут войти в систему, они должны дважды нажать кнопку входа в систему. Кроме того, иногда, даже после того, как они дважды нажимают кнопку входа в систему, моя часть страницы «Информация о пользователе» (ранее на странице, чем содержимое) показывает их как вышедших из системы, тогда как на реальной странице они отображаются как вошедшие в систему.

Вот код. Может ли кто-нибудь предложить лучший способ обработки входов в систему?

function isLoggedIn($facebook) {
    if (isset($facebook) and $facebook->getUser() != 0) {
        // UserID exists, but user may still not be logged in. Let's check:
        try {
            $facebook->api('/me', 'GET');
            // If this succeeds, then they are logged in.
            return true;
        } catch(FacebookApiException $e) {
            // Some kind of error, so not logged in.
            if(session_id() === '')
                session_destroy();
            return false;
        }
    } else {
        if(session_id() === '')
            session_destroy();
        return false;
    }
}

Спасибо!

Ответы [ 3 ]

0 голосов
/ 13 июня 2013

Ну вот быстрое решение ... может быть, грязное, но мне нужно было заставить его работать. Необходимость дважды щелкнуть - смешно.

    $user = $facebook->getUser();
    if($user) {
        // do stuff cause user is now logged 
    }
    if(isset($_GET['fb_logged']) && $user == 0) {
        // not logged, would have to click twice but let's help that user.
        header('Location: '.$loginUrl);
    }
0 голосов
/ 29 октября 2013

У меня была та же проблема, и я два раза запускал инстансы $ facebook, решив их с помощью одного и добавив «offline_access», и до сих пор это работало, теперь работая только с одним кликом при входе в систему

$facebook = new Facebook(array( /* the data */));
0 голосов
/ 24 января 2012
$facebook = new Facebook(array( /* the data */));
$user = $facebook->getUser();
if($user) {
  //loged
} else {
  //not loged
}

достаточно

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