Вы не показываете, как используете этот объект для входа, поэтому ответить на него немного сложно.
Однако пакет googleapis уже поддерживает знак- с клиентом OAuth2 , который вы можете создать с помощью чего-то вроде
const {google} = require('googleapis');
const oauth2Client = new google.auth.OAuth2(
YOUR_CLIENT_ID,
YOUR_CLIENT_SECRET,
YOUR_REDIRECT_URL
);
Затем вы можете получить URL-адрес для перенаправления на него, чтобы они могли войти с помощью чего-то вроде
const url = oauth2Client.generateAuthUrl({
// If you only need one scope you can pass it as a string
scope: scopes
});
и затем перенаправить их на url
.Как только они войдут в этот URL, они будут перенаправлены на URL, указанный вами как YOUR_REDIRECT_URL
, который будет включать параметр с именем code
.Этот код понадобится вам для обмена учетными данными, включая токен авторизации
const {tokens} = await oauth2Client.getToken(code)
oauth2Client.setCredentials(tokens);
Если вам просто нужно использовать ключ API (на что намекает ваш пример),тогда вам просто нужно включить ключ так же, как вы сейчас делаете для вызовов API, которые вам нужно сделать.Но это не относится к авторизации.
Поскольку похоже, что вы хотите получить информацию о профиле, вы можете использовать что-то вроде userinfo или People API и выбирать, какие поля вы хотите использовать дляпользователь.
Использование userinfo может выглядеть примерно так:
oauth2client.userinfo.get().then( profile => {
// Handle profile info here
});
Метод people.get дает вам немного больше контроля и может выглядеть примерно так:
const people = google.people({
version: "v1"
});
const fields = [
"names",
"emailAddresses",
"photos"
];
people.people.get({
resourceName: "people/me",
personFields: fields.join(',')
})
.then( user => {
// Handle the user results here
});