У меня есть собственное приложение, использующее firebase для аутентификации. Перед каждым исходящим запросом я звоню:
auth().currentUser.getIdToken(true).then(token => {
Затем я отправляю исходящий запрос на мой сервер с этим токеном в заголовке. Затем на моем сервере я звоню:
firebase.auth().verifyIdToken(token)
, который затем должен проверить токен и пользователя, который сделал запрос. Этот рабочий процесс работал последние несколько месяцев, но сегодня я перезагрузил свой удаленный сервер, и каждый маркер, который он пытается проверить, истек. Во внешнем интерфейсе я попытался сделать console.log токена сразу после его создания, и он показывает, что токен был создан и срок его действия истекает в 2019 году. Я пытаюсь войти в систему с различными учетными записями, и каждый генерируемый токен говорит, что он создан и истекает в 2019 году, по заявкам он показывает 1970 год. Через 2-3 часа эта проблема ушла, я смог все сделать успешно. Я все еще сделал console.log для своего токена, и он по-прежнему отображается как просроченный, хотя база данных на моем сервере принимает его как проверенный. Из любопытства о том, что вызвало эту проблему, я перезагрузил свой сервер, и теперь у всех входящих токенов снова истек срок действия.
Вот что getTokenIdResult печатает на моем интерфейсе:
claims:
auth_time: 1583265950
email_verified: true
iat: 1583266220
exp: 1583269820
phone_number: "+17777777777"
issuedAtTime: "2019-08-08T12:10:20Z"
expirationTime: "2019-08-08T13:10:20Z"
authTime: "2019-08-08T12:05:50Z"