Как продлить сеанс входа в систему аутентификации firebase со стороны клиента? - PullRequest
0 голосов
/ 09 февраля 2020

Вопрос в названии. Я провел некоторые исследования, но мне кажется, что я не могу найти решение для продления срока жизни сеанса входа в систему при использовании аутентификации firebase.

В настоящее время у меня есть файл, который регистрирует пользователя с фронта. конец. После входа в систему с помощью аутентификации Firebase я передаю токен идентификатора firebase на сервер:

//[index.php]
 auth.onAuthStateChanged(function(user) {

    if (user) {

        //Retrieve the firebase id token
        user.getIdToken().then((idToken) => {

            //Send the idToken to the server
            sendIdTokenToServer();

        });

    } else {

        //The user is logged out, redirect to login page

    }

});

Со стороны сервера я проверяю токен идентификатора firebase и назначаю его $_SESSION['firsebase_id_token'], если токен действителен .

//[server.php]
//Pseudo verifying the token, if the token is valid, record it
if (verifyToken($token)) $_SESSION['firebase_id_token'] = $token;

Теперь с этого момента я пытаюсь проверить токен перед обработкой чего-либо со стороны сервера. Например:

//[test.php]
//Before processing anything, validate the token
if (verifyToken($_SESSION['firebase_id_token'])) {

    //Perform an action because the user is still logged in

} else {

    //Redirect the user to login page because they are logged out/the token cannot be verified

}

Я не уверен, что это правильный подход к проблеме (поэтому, пожалуйста, предложите правильный подход) , это именно то, что я считаю правильным при чтении документация. Все, что я хочу сделать, это проверить пользователя (который вошел в систему со стороны клиента) со стороны сервера перед выполнением каких-либо административных задач. Проблема в том, что через очень короткий промежуток времени $token больше не действителен, поэтому запрос не может быть выполнен.

Как продлить сеанс токена идентификатора firebase с клиента сторона

1 Ответ

1 голос
/ 10 февраля 2020

Вместо использования onAuthStateChanged, которое срабатывает только при входе или выходе пользователя, следует использовать onIdTokenChanged, который срабатывает при обновлении токена пользователя (каждый час автоматически). или по требованию при звонке getIdToken(true)).

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