Нужна ли повторная аутентификация Facebook? - PullRequest
0 голосов
/ 15 января 2019

Я получил это сообщение в прошлый четверг.

В последних обновлениях наших политик разрешений для приложений было применено 90-дневное истечение срока действия для разрешений пользователей (разрешений, относящихся к информации профиля пользователя, такой как сообщения, фотографии, пол, возрастной диапазон). Вступает в силу немедленно, теперь это относится к {my-app}

Я прочитал https://developers.facebook.com/docs/facebook-login/auth-vs-data, и попытался проверить, что произойдет, когда по истечении времени data_access_expires_at. Я хотел знать, как меняются ответы API.

Однако я не нашел ни документов, ни последствий для устаревания, ни способа сделать токен доступа устаревшим.

У меня есть процедура для повторного получения токена доступа, когда токен доступа недействителен. Но распространяется ли эта процедура в случае необходимости повторной аутентификации?

1 Ответ

0 голосов
/ 29 января 2019

Facebook не предлагает повторную авторизацию, но вы можете создать его самостоятельно. Facebook также не предлагает программный способ расширения токенов. Однако то, что они говорят, если пользователи, которые аутентифицируют ваше приложение, остаются активными с вашим приложением - их токены никогда не истекают. Если они не активны с вашим приложением - доступ длится только 90 дней.

Что вам нужно сделать, это разместить скрипт входа Facebook на ваших страницах. Это в основном устанавливает «активность»:

<script>
    
    window.fbAsyncInit = function() {

        FB.Event.subscribe('auth.statusChange', function(response) {            
            // don't have to do anything actually
        });
        
        FB.init({
            appId            : '${facebookAppId}',
            autoLogAppEvents : true,
            status : true, // check login status
            xfbml            : true,
            version          : 'v3.2'
        });
    };

    (function(d, s, id){
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) {return;}
        js = d.createElement(s); js.id = id;
        js.src = "https://connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...