2013-10-25 4 views
6

Чтобы определить, когда использовать токен обновления для запроса нового токена доступа, я знаю два подхода (ниже). Возможны ли какие-либо из этих подходов без изменения библиотеки passport-google-oauth?Получить токен доступа oauth из токена обновления в паспортные данные

1) «упреждающий» метод

  • Сохранить время истечения токена доступа, когда его получила
  • Проверьте срок времени от текущего времени, когда с помощью маркеров доступа для доступа к API
  • Если маркер доступа не истек, использовать его для доступа к API
  • Если маркер доступа истек (или близко к истекли), поставить маркер обновления, чтобы получить новый маркер доступа

2) Метод «справляться с неудачами»

  • Всегда поставить маркер доступа
  • Если маркер доступа не для проверки подлинности, поставить маркер обновления, получить новый маркер доступа

Спасибо. Также приветствуем любые альтернативы.

ответ

4

Обратите внимание, что Passport активно не использует токен доступа или обновлять токен, кроме того, чтобы получать профиль пользователя во время входа в систему. Приложение является ответственным за использование этих токенов при выполнении любых запросов API. Таким образом, вы можете реализовать любой описанный вами метод, Passport не участвует в этом процессе.

Смотрите также: https://github.com/jaredhanson/passport-google-oauth/issues/23

+0

ты настоящий герой :-D – ShrekOverflow

5

Я написал плагин, чтобы сделать обработку этого немного легче: https://github.com/fiznool/passport-oauth2-refresh

+0

Очень приятно, спасибо - интегрирует паспорт-Google-OAuth и google-api-nodejs-client с платой edit-google очень плавно. –

+0

См. 4. Динамический токен, при базовом использовании здесь: https://github.com/jpillora/node-edit-google-spreadsheet, где я сейчас просто вызываю вызов 'refresh.requestNewAccessToken()' –

Смежные вопросы