web-dev-qa-db-fra.com

Erreur: invalid_request device_id et device_name sont requis pour l'IP privée

Je faisais mon développement avec l'API Google Drive en utilisant [localhost: 8080]. Soudainement, j'ai eu le sentiment de le tester dans mon sandbox de déploiement local et que son adresse IP était [192.168.1.1:8080]. Et selon ce que j'ai changé les informations d'identification dans l'URL de rappel du client de la console de développement. J'utilise OAuth2WebServerFlow pour obtenir le jeton d'actualisation à l'aide du consentement de l'utilisateur. Ensuite, à l'avenir, j'utilise le jeton d'actualisation et OAuth2WebServerFlow pour authentifier l'utilisateur. Mais j'ai été surpris - j'ai eu l'erreur:

  1. C’est une erreur . Erreur: demande_valide ID_périphérique et nom_périphérique sont requis pour l’IP privée: 

Je ne sais pas ce qui se passe ou comment puis-je résoudre ce problème? Qu'est-ce qui se passe, je ne comprends pas

26
phenomenon.aurora

Une alternative à l'édition d'un fichier hosts consiste à utiliser le service "Magic DNS" http://xip.io/ ou http://nip.io/ (voir edit)

xip.io est un nom de domaine magique qui fournit un DNS générique pour toute adresse IP. Indiquez que votre adresse IP LAN est 10.0.0.1. En utilisant xip.io,

        10.0.0.1.xip.io   resolves to   10.0.0.1
    www.10.0.0.1.xip.io   resolves to   10.0.0.1
 mysite.10.0.0.1.xip.io   resolves to   10.0.0.1
foo.bar.10.0.0.1.xip.io   resolves to   10.0.0.1

Avec ce service, vous pouvez spécifier un domaine de nature publique qui se résout en une adresse privée.

Dans la console, si votre URI de redirection était (ce que vous souhaiteriez avoir de toute façon _):

http://192.168.1.1:8080/auth/google_oath2/callback

Remplacez-le par:

http://192.168.1.1.xip.io:8080/auth/google_oath2/callback

"Redirect URIs" ne semble pas accepter les caractères génériques, il faut donc spécifier l'intégralité de l'ip-xip.io privé dans la console.

_ {Je n'ai aucune affiliation avec xip.io; je suis juste un utilisateur satisfait.} _

2016 Edit: J'ai entendu parler de l'instabilité des serveurs DNS xip.io. Il existe un service copy-cat nip.io qui se comporte exactement comme xip.io, mais en juillet 2016, nip.io avait un taux de réponse de 100%, contrairement à xip.io.

32
whitehat101

Google n'acceptera pas d'adresse IP locale (privée) lors d'appels Oauth. Ma solution de contournement consistait à ajouter une entrée dans mon fichier d'hôtes Windows pour l'adresse IP locale:

\Windows\System32\drivers\etc

192.168.1.2   fakedomain.com

puis enregistrez fakedomain.com avec Google dans leur console de développement. Cela leur apparaît comme un "vrai" domaine, mais cela résoudra tout de même dans votre navigateur à l'adresse IP locale. Je suis sûr qu'une approche similaire sur Mac ou Linux fonctionnerait également.

12
Josh Diehl

Edit: pertinent uniquement pour le développement local.

Ok, j'ai le même problème sur mon Mac. Les étapes suivantes ont résolu le problème

  • Accédez à votre console de développement Google https://console.developers.google.com/project , choisissez les informations d'identification et remplacez l'IP de rappel par un domaine tel que http://myflask.com:5000/ oauth2callback . Dans mon cas, j'utilise une application Flask, le port 5000 est donc nécessaire.

  • Ajoutez ensuite à votre fichier private/etc/hosts une nouvelle entrée correspondant au nom d’hôte ci-dessus à votre adresse IP, comme suit:

    # (example IP)
    172.1.1.1 myflask.com
    
  • Donnez à Google une minute pour mettre à jour vos informations d'identification et visitez votre site à l'adresse http://myflask.com:5000 .

3
philmaweb

J'ai eu la même erreur jusqu'à ce que je change l'adresse IP en nom de domaine (192.168.1.113 en localhost dans mon cas), de sorte qu'il semble que Google n'accepte pas les adresses IP nues. 

Utilisez un nom de domaine pour votre sandbox ou configurez un serveur de domaine local si vous n'en avez pas.

2
Mikee

A noter que sur un Mac, vous pouvez faire la même chose en modifiant en tant que root:

/private/etc/hosts

Ajouter une ligne similaire à celle mentionnée ci-dessus

192.168.60.10   fakedomain.com
1
ejvaudio

Modifiez vos hôtes de fichiers dans\Windows\System32\drivers\etc\hosts

ajouter "192.168.1.2 fakedomain.com" dans le fichier hosts 
redémarrez vos fenêtres

Mise à jour de la console 192.168.1.2 de Google sur fakedomain.com

0
brew