web-dev-qa-db-fra.com

Google OAuth 2.0 "erreur": "redirect_uri_mismatch"

Je passe déjà un jour, écrasé un verre et je suis vraiment fâché à ce sujet, je ne comprends pas ce que Google veut de moi et ce qui ne va pas.

J'ai activé Google+ Api dans la console des développeurs google_ api enabled, a créé le nouvel identifiant client OAuth client id

    $ch = curl_init('https://accounts.google.com/o/oauth2/token');
curl_setopt($ch,CURLOPT_POSTFIELDS,'code=4%2FPp1GWqC6PIr3wNYrZ5kK4T9oitxBoo0fBqBrVNQfE-g.ElKDUjQ7E28SoiIBeO6P2m-0RPaolgI&grant_type=authorization_code&redirect_uri=https%3A%2F%2Fmyprivatedomain.local.com%2Foauth2callback&client_id=%mycliet_id%&client_secret=%mysecret%');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
var_dump(curl_exec($ch));

créé tout comme dans les instructions ici: https://developers.google.com/+/web/signin/server-side-flow , le bouton gplus apparaît sur la page et demande l’accès à un utilisateur autorisé. mais lorsque j'ai effectué l'étape 8 Étape 8: initialisez la bibliothèque cliente de l'API Google et démarrez le service Google+ ma demande chaque fois obtenir une réponse "erreur": "redirect_uri_mismatch"

Je sais que cette erreur apparaît lorsque vous n’avez pas enregistré redirect_uri dans Google Console, ou que vous y avez commis une erreur de frappe, mais que je l’ai enregistrée et que, juste pour le tester, j'ai essayé de configurer différentes URL (noms de domaine modifiés, protocoles modifiés, etc.). https à https), mais ça ne marche jamais! Je ne sais pas quoi d'autre je peux vérifier, s'il vous plaît conseiller au moins quelque chose.

12
Unstaged

Les documents disent à l'étape 1. https://developers.google.com/+/web/signin/server-side-flow#step_1_create_a_client_id_and_client_secret qu'il ne doit y avoir aucun URI de redirection configuré, mais uniquement des "origines JavaScript autorisées". Dans la demande d'autorisation et l'échange de jetons, la valeur du paramètre redirect_uri doit être définie sur postmessage.

Edit: Art antérieur à ce sujet: Autorisation Google OAuth 2 - Erreur: redirect_uri_mismatch

25
Hans Z.

Juste rencontré ce problème moi-même. Dans mon cas, mes informations d'identification ont été configurées pour une application installée , PAS une application Web. Il semble que Installed applications ne puisse pas être configuré avec redirect URLs. J'ai créé un nouveau justificatif d'identité en tant que web application, ce qui m'a permis de définir une série de redirect urls. 

En suivant les conseils de cette réponse et d'autres, je me suis assuré que l'URL correspondait (copier-coller) et que cela fonctionnait correctement pour moi. J'ai aussi fait cela dans une fenêtre Incognito.

Le résultat a été que mon navigateur a été transféré vers l'URL que j'ai placée dans le paramètre redirect_url avec un paramètre de chaîne de requête spécial code et le code à utiliser pour l'étape suivante.

2
Ben

Si vous voyez ceci lorsque vous utilisez Google IAP , si vous essayez de consulter votre URL dans un navigateur, vous obtiendrez le message suivant:

  1. C'est une erreur.

Erreur: redirect_uri_mismatch

L'URI de redirection dans la demande, [your_url]/_ gcp_gatekeeper/authenticate, ne correspond pas à ceux autorisés pour le client OAuth. Pour mettre à jour les URI de redirection autorisés, visitez le site: https://console.developers.google.com/apis/credentials/oauthclient/ ? Project = [id_projet].

si vous visitez l'URL qu'il vous donne (ou indirectement via la console >> cliquez sur éditer sur le "" numéro de client OAuth 2.0 "correct), dans la section" URI de redirection autorisés ", assurez-vous que l'URL [your_url]/_gcp_gatekeeper/authenticate est définie .

La partie _gcp_gatekeeper/authenticate est indispensable.

Google renvoie l'erreur 400 en raison de l'incompatibilité dans l'URI de redirection.

0
eversMcc