Firebase обновить id токены для аутентификации сервера - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть проект, использующий firebase, где я использую токен firebase id для проверки пользователя на бэкэнде. На самом деле, на клиенте, когда пользователь входит в систему, я использую getIdToken(true) и присоединяю его к заголовку моих запросов. На сервере для каждого запроса я использую verifyIdToken, чтобы проверить, вошел ли пользователь в систему и является ли он действительным.

Проблема в том, что через некоторое время токен истекает, и сервер не может проверить пользователя.

Мой вопрос: как получить эту работу?

Я думаю об использовании перехватчика запросов со стороны клиента для получения токена идентификатора для каждого запроса, но я не знаю, является ли это хорошей практикой и нужно ли также аннулировать другие токены с помощью admin.auth().revokeRefreshTokens(userId). Заранее спасибо.

клиент

axios.interceptors.request.use(function (config) {
  if (!firebase.auth().currentUser) {
    return config
  }
  return firebase.auth().currentUser.getIdToken(true).then(token => {
    config.headers.Authentication = token
    return config
  })
}, function (error) {
  // Do something with request error
  return Promise.reject(error)
})

Сервер

let decodedToken = await admin.auth().verifyIdToken(token);
let userId = decodedToken.uid;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...