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:
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
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.
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.
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 .
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.
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
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