Как завершить сеанс пользователя через Firebase Function? - PullRequest
0 голосов
/ 11 февраля 2019

Я создал функцию Firebase, которая будет обнаруживать недействительные запросы и блокировать учетные записи пользователей:

if (!context.auth)
    return null;

if (!(typeof data.text === 'string') || data.text.length !== 0)
{
    return admin.auth().updateUser(context.auth.uid, { disabled: true });
}

, но пользователь все равно может вызывать функцию во время аутентификации. Как завершить сеанс пользователя внутри облачной функции и заставить пользователя снова пройти аутентификацию?

1 Ответ

0 голосов
/ 11 февраля 2019

Чтобы отозвать токен обновления пользователя, используя Firebase Admin SDK.Это доступно для разных языков, но в Node.js это будет выглядеть так:

// Revoke all refresh tokens for a specified user for whatever reason.
// Retrieve the timestamp of the revocation, in seconds since the epoch.
admin.auth().revokeRefreshTokens(uid)
    .then(() => {
      return admin.auth().getUser(uid);
    })
    .then((userRecord) => {
      return new Date(userRecord.tokensValidAfterTime).getTime() / 1000;
    })
    .then((timestamp) => {
      console.log("Tokens revoked at: ", timestamp);
  });

Подробнее об этом см. отзыв маркеров обновления вдокументация.

...