Redirect_uri_mismatch lorsque vous contactez l'Api Google avec OAuth2
Je suis de la création d'une application mobile en utilisant le Sencha Touch et PhoneGap. Je veux être en mesure d'autoriser les utilisateurs à se connecter à l'application en utilisant leur passe Google, mais je suis de frapper un mur de briques avec la demande initiale avec l'erreur suivante:
Le redirect URI de la demande: http://localhost ne correspond pas à un régime enregistré d'URI.
Mon API Google compte est la valeur par défaut 2 Uri inscrit (http://localhost et urn:ietf:wg:oauth:2.0:oob).
J'ai essayé les deux de ces, sans succès.
La demande, je suis l'envoi contient la chaîne de requête suivante params:
- response_type: "code"
- client_id: <client id>
- redirect_uri: 'http://localhost'
- portée: 'https://www.googleapis.com/auth/plus.me'
Le processus de base est:
- construire des URL comme ci-dessus
- ouvrir une nouvelle fenêtre de navigateur (à l'aide de ChildBrowser plugin PhoneGap)
- accédez à l'URL
- à ce point, le Google de la page de login montre et me permet de mettre les informations d'identification de
- après la Connexion, appuyez sur, je suis redirigé vers une page d'erreur contenant l'erreur ci-dessus.
Je suis en train de tester cela dans le simulateur d'iPhone et sur mon iPhone avec le même résultat dans les deux. L'application n'est pas apparent pour s'exécuter sur le http://localhost url mais sur file:///var/mobile/Applications/<guid>/<nom de l'application>/www/index.html mais il n'y a pas d'option pour ajouter cela dans le Google de la Console (..ou est-il? 🙂 )
Quelqu'un aurait-il des suggestions sur les raisons de ce qui ne fonctionne pas? J'ai peu ou pas d'expérience avec l'aide d'OAuth et Google Api de sorte que toute peu de les conseils sont les bienvenus!
Merci d'avance
Stuart
OriginalL'auteur Stuart | 2012-04-11
Vous devez vous connecter pour publier un commentaire.
Je vous suggère de lire ce que le meilleur point de départ pour L'API Google avec OAuth2, et dans votre cas, vous avez besoin de ceci: OAuth2 pour les Appareils.
Probablement vous utilisez le mauvais point de terminaison, à la demande d'un code d'utilisateur, vous devez utiliser les point de terminaison:
C'est un exemple d'utilisation de curl (dans votre cas, pour autoriser l'accès à la Google+ API):
Vous obtiendrez une réponse comme ceci:
Ensuite, vous devez demander l'autorisation, showning l'utilisateur le user_code et la verification_url de "paire" de votre application avec le compte d'utilisateur de l'utilisateur. Il y a ici un bon exemple de ce ou de la la documentation:
La dernière étape, demander une access_token, à l'aide de curl:
vous aurez une réponse comme celle-ci:
et enfin, vous pouvez accéder aux services, vous avez accordé (n'oubliez pas de configurer l'accès à partir de l'API de la console, dans votre cas, le Google+ API) avec le access_token obtenus.
Sur la question de
La réponse est oui, c'est le comportement attendu. Cette redirect_uri est vous dire où rappel après le succès des autorisations d'accès à votre application. Dans votre cas, un appareil mobile.
Dans le cas de "urn:ietf:wg:oauth:2.0:oob", n'est pas exactement une redirection. Vous avez besoin de "rattraper" ou "crochet" ce, pour tout simplement continuer votre processus, peut-être cela peut vous aider ou cette.
Bonne chance!
OriginalL'auteur Antonio Saco
Ma réponse n'est pas sur une application mobile, mais peut être utile pour d'autres personnes. J'ai eu un redirect_url_mismatch, et j'ai résolu le problème en modifiant l'url de redirection dans le Google Cloud Console. L'url doit correspondre à exactement, de sorte que
http://localhost:8080
n'est pas le même quehttp://localhost:8080/
.J'ai pu le tester en ouvrant ce lien dans le navigateur (à remplacer par votre
client_id
). Si leredirect_uri
est mauvais, il se plaint; si c'est la bonne ou si vous avez déjà autorisé l'accès, il redirige verslocalhost:8080
. Aussi, si vous avez déjà autorisé l'accès, il peut être révoqué ici.OriginalL'auteur osa
J'ai eu un problème similaire et j'ai fait la suivante: enregistré mon application dans l'API console comme une Application Web, au lieu d'une Application Installée. Ainsi, j'ai pu enregistrer un http://URL de redirection d'uri. Le corps de la page de mon URL de redirection sur un serveur Apache a été:
Avec cela, l'application se comporte en fait la même que pour les autres OAuth services autorisés, tels que facebook...
OriginalL'auteur user624477