O escopo do “perfil” é necessário para o Google OAuth2.0?
-
21-12-2019 - |
Pergunta
No momento, estou tentando permitir que os usuários do meu aplicativo autorizem meu aplicativo a acessar a API Doubleclick for Advertisers.Estou lidando com essa autorização usando Passaporte.js.Quando incluo ambos os escopo do perfil e o escopo do DFA assim:
app.get '/requestAccess', passport.authenticate 'dfa',
scope: [
'https://www.googleapis.com/auth/dfatrafficking',
'profile'
]
Isso funciona bem.No entanto, só me importo com a API do DFA e, na verdade, não pretendo usar nada do escopo do perfil, então gostaria de remover isso:
app.get '/requestAccess', passport.authenticate 'dfa',
scope: [
'https://www.googleapis.com/auth/dfatrafficking',
]
Quando autorizo o uso desta rota agora, recebo:
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientPermissions",
"message": "Insufficient Permission"
}
],
"code": 403,
"message": "Insufficient Permission"
}
}
Que vem do Google, o que significa que o escopo que solicitei era insuficiente.O escopo do perfil é necessário para qualquer tipo de acesso adicional?Por que não posso solicitar apenas o escopo do DFA?
Solução
Não, o escopo "perfil" não é obrigatório para o Google OAuth 2.0.
Se você quiser apenas a autorização para a API do DFA, precisará apenas deste escopo https://www.googleapis.com/auth/dfatrafficking
(como documento oficial diz, e esta amostra java use apenas este escopo)
A razão pela qual você obtém "Permissão insuficiente" é quando você usa passport.authenticate 'dfa'
é realizada a autenticação usando um provedor OAuth (no seu caso é o Google), onde o escopo "perfil" é necessário (como este documento diz, "perfil" é o escopo básico para login)