Как использовать метод refreshAccessToken для создания нового маркера доступа в google-api-nodejs-client
Я вижу, что этот запрос на добавление добавляет метод для обновления токена доступа с использованием сохраненного токена обновления. Мне не понятно, как его использовать. Я сохранил токены (включая токен обновления) из исходного запроса getToken и теперь извлекаю токен из базы данных в новом сеансе. Как установить учетные данные на OAuth2Client, чтобы я мог вызвать refreshAccessToken и получить новый маркер доступа?
2 ответа
Я пропустил параграф о настройке учетных данных в git-файле readme, так что вот пример кода на тот случай, если кому-то еще это понадобится.
var googleOauth2Client = new OAuth2Client(googleClientId,googleClientSecret, googleCallbackUrl);
googleOauth2Client.setCredentials({
refresh_token: saved_refresh_token
});
googleOauth2Client.refreshAccessToken(function(err, tokens){
response.send({
access_token: tokens.access_token
});
});
Просто предположение, поскольку я не использовал эту библиотеку. Но мне кажется, что вы просто позвоните myOAuth2Client.refreshAccessToken(function(err, newCredentials){})
где вы уже создали экземпляр OAuth2Client
объект со старым токеном. (не знаю, как вы это делаете, но это может быть так же просто, как создание объекта тогда myOauth2Client.credentials.refresh_token = 'foobar'
.) И если нет ошибки, он изменит OAuth2Client.credentials
объект и дополнительно передать объект учетных данных для обратного вызова.