Требуется ли область “профиль” для Google OAuth2.0?
-
21-12-2019 - |
Вопрос
В настоящее время я пытаюсь разрешить пользователям моего приложения авторизовать мое приложение для доступа к их API Doubleclick for Advertisers.Я обрабатываю эту авторизацию с помощью Passport.js.Когда я включаю оба область применения профиля и область действия DFA, подобная этой:
app.get '/requestAccess', passport.authenticate 'dfa',
scope: [
'https://www.googleapis.com/auth/dfatrafficking',
'profile'
]
Это прекрасно работает.Однако меня волнует только DFA api, и на самом деле я не собираюсь использовать что-либо из области профиля, поэтому я хотел бы удалить это:
app.get '/requestAccess', passport.authenticate 'dfa',
scope: [
'https://www.googleapis.com/auth/dfatrafficking',
]
Когда я разрешаю использовать этот маршрут сейчас, я получаю:
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientPermissions",
"message": "Insufficient Permission"
}
],
"code": 403,
"message": "Insufficient Permission"
}
}
Который исходит от Google, а это означает, что объем, который я запросил, был недостаточным.Требуется ли тогда область действия профиля для какого-либо дополнительного доступа?Почему я не могу запросить только область действия DFA?
Решение
Нет, область "профиль" не требуется для Google OAuth 2.0.
Если вам просто нужна авторизация для DFA API, вам нужна только эта область https://www.googleapis.com/auth/dfatrafficking
(как официальный документ говорит, и этот пример java используйте только эту область)
Причина, по которой вы получаете "Недостаточное разрешение", заключается в том, что вы используете passport.authenticate 'dfa'
выполняется аутентификация с использованием поставщика OAuth (в вашем случае это Google), где требуется область "профиль" (как в этом документе говорится, "профиль" - это базовая область для входа в систему)