Est le “profil” de la portée nécessaire pour Google OAuth2.0?
-
21-12-2019 - |
Question
Je suis en train d'essayer de permettre aux utilisateurs de mon application pour autoriser mon application à accéder à leur Doubleclick for advertisers API.Je suis de la manipulation de cette autorisation à l'aide de Passport.js.Quand j'ai inclure à la fois le profil portée et DFA portée comme ceci:
app.get '/requestAccess', passport.authenticate 'dfa',
scope: [
'https://www.googleapis.com/auth/dfatrafficking',
'profile'
]
Cela fonctionne très bien.Cependant, je ne se soucient de la TFD de l'api, et je n'ai pas vraiment l'intention de les utiliser quoi que ce soit à partir du profil de la portée, donc je voudrais le supprimer:
app.get '/requestAccess', passport.authenticate 'dfa',
scope: [
'https://www.googleapis.com/auth/dfatrafficking',
]
Lorsque j'autorise l'utilisation de cette route maintenant, je reçois:
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientPermissions",
"message": "Insufficient Permission"
}
],
"code": 403,
"message": "Insufficient Permission"
}
}
Qui vient de Google, ce qui signifie que le champ d'application, j'ai demandé, avec a été insuffisante.C'est le profil de la portée nécessaire, alors pour tout type d'accès supplémentaire?Pourquoi ne puis-je pas demander la DFA portée?
La solution
Non, le champ "profil" n'est pas requis pour Google OAuth 2.0.
Si vous voulez simplement l'autorisation pour l'IFD de l'API, vous aurez besoin de ce champ d'application https://www.googleapis.com/auth/dfatrafficking
(comme officiel doc dit, et ce java échantillon n'utilisez ce champ)
La raison pour laquelle vous obtenez le "manque de Permission" lorsque vous utilisez passport.authenticate 'dfa'
l'authentification à l'aide d'un protocole OAuth fournisseur(dans votre cas, c'est Google) est exécuté, lorsque le champ "profil" est nécessaire(comme ce doc a dit, "profil" est le champ d'application de base pour la connexion)