Я использую 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](https://i.stack.imgur.com/C0TnV.png)
Редактировать 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('/');
});