Passport.js аутентификация в Gmail API приводит к GooglePlusAPIError - PullRequest
0 голосов
/ 10 октября 2018

Я использую Passport.js для аутентификации в Google.Я определяю следующую область действия:

passport.authenticate('google', {
  scope: [
    'https://www.googleapis.com/auth/gmail.modify',
  ],
})

Итак, я просто хотел бы получить доступ к API Gmail.

Теперь Google отвечает:

GooglePlusAPIError: Insufficient Permission

Я получаюэто работает, когда я добавляю API Google+ в свой проект через панель инструментов API Google и добавляю следующую область в мой вызов passport.authenticate:

'https://www.googleapis.com/auth/userinfo.email'

Но зачем мне API Google+, когда единственноеЯ хотел бы получить доступ к Gmail?

Я также нашел этот веб-сайт: https://developers.google.com/gmail/api/auth/web-server, где они устанавливают следующие области действия:

SCOPES = [
  'https://www.googleapis.com/auth/gmail.readonly',
  'https://www.googleapis.com/auth/userinfo.email',
  'https://www.googleapis.com/auth/userinfo.profile',
  # Add other requested scopes.
]

Чего мне не хватает?

Заранее спасибо!

Приветствия, Нильс

Редактировать:

Я только что исследовал свою панель инструментов Google API и нашел экран ниже.Итак, являются ли эти области обязательными?

screenshot of my Google API dashboard

Редактировать 2

Контекст является приложением Express.js,Весь звонок выглядит так:

router.get('/google', passport.authenticate('google', {
  scope: [
    'https://www.googleapis.com/auth/gmail.modify',
  ],
}));

router.get('/google/callback', passport.authenticate('google', {
  failureRedirect: '/',
}), (req, res) => {
  req.session.token = req.user.token;
  res.redirect('/');
});
...