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?

Foi útil?

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)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top