This - это комментарий, который заставил меня задать этот вопрос.Неверный запрос API Google после истечения срока доступа к токену
У меня есть приложение Node.js на стороне сервера, используя пакет googleapis. Пользователи регистрируются в своих учетных записях Google, а я храню токены в их сеансе. Учетные данные, которые я получаю следующие
{ access_token: '<AN ACCESS TOKEN>',
token_type: 'Bearer',
id_token: '<A LONG ID TOKEN>',
expiry_date: <A TIMESTAMP> } // why do some places say there's an expires_in instead of this
Там нет refresh_token
, потому что пользователи уже вошли в первый раз и нажал принять, и я не хранить токен обновления (похоже, что я должен уже).
Итак, когда expiry_date
достигается, если пользователь пытается сделать запрос для нас, чтобы сохранить что-то в их диск Google, я получаю сообщение об ошибке:
{ [Error: invalid_request] code: 400 } // ...no further details
Мой 2 части вопроса:
Я предполагаю, что я получаю сообщение об ошибке, потому что access_token в моем объекте OAuth клиента истек (поскольку вызов отлично работает до истечения срока действия маркеров). Это верно? Почему сообщение об ошибке не более подробно?
В ответ на ответ вверху решение должно снова вызвать приглашение accept, получить токен обновления и сохранить его навсегда и использовать его для получения нового токена доступа по истечении срока его действия. Почему это лучший вариант, чем просто проверка того, истек ли токен, и повторная аутентификация пользователя, когда мы хотим позвонить в API? Какой «правильный» способ обеспечить, чтобы мои зарегистрированные пользователи всегда могли обращаться к API-интерфейсу накопителя для сохранения своих документов?
это выглядит, как вы используете устаревшую конечную точку самоанализа маркера, так как 'expires_in' действительно стандартное поведение, которое реализуется с помощью Google в более поздних конечных точках –
@HansZ. не могли бы вы пояснить здесь термины «конечная точка» и «интроспекция»? Для этого я использую последнюю версию google-клиента apis на node.js. –