J'ai créé Google OAuth 2.0 ClientID
et secret
dans la console Google Developer.
Après cela, j'ai testé dans Google OAuth playground ( https://developers.google.com/oauthplayground ) . Et enregistré ClientID
et secret
déjà créés ci-dessus et appliqués au menu de configuration de Google OAuth 2.0.
Certaines personnes disent qu'après avoir créé ClientID
/secret
, il leur faut un peu de temps pour les tests. Donc après deux jours, j'ai essayé de tester dans les mêmes conditions mais l'erreur est la même redirect_uri_mismatch
.
Comment puis-je résoudre ça?
Aussi peu que d'avoir un '/' à la fin de votre uri et ne pas avoir le même '/' à la fin de votre code le jettera.
Votre site URL
et le Authorized redirect URIs
dans la console du développeur doivent correspondre exactement.
Ce type d'erreur se produit si une URL a www
(http://www.example.com
) et l'autre URL est non-www
(http://example.com
).
Les autres incompatibilités d'URI courantes sont:
http://
dans les URI de redirection autorisés et de https://
en tant qu'URL réelle, ou inversementhttp://example.com/
) dans les URI de redirection autorisée et de ne pas utiliser la barre oblique finale (http://example.com
) comme URL réelle, ou inversementVoici la procédure à suivre (avec des captures d'écran) pour mettre à jour les URI de redirection autorisés dans la console pour développeurs Google (pour ceux qui, comme moi, ont trouvé difficile d'accéder à cette page).
Accédez à https://console.developers.google.com
Sélectionnez votre projet
- Cliquez sur l'icône du menu
- Cliquez sur le menu
API Manager
- Cliquez sur le menu
Credentials
. Et sousOAuth 2.0 Client IDs
, vous trouverez votre nom de client. Dans mon cas, c'estWeb Client 1
. Cliquez dessus et une fenêtre contextuelle apparaîtra dans laquelle vous pourrez éditer URI de redirection JavaScript autorisé et Autorisé.
Voici un article de Google sur la création d'un projet et d'un ID client .
Ce devrait être une correspondance exacte de ce que vous avez donné dans le fichier console.developers.com.
Dans mon cas, j'ai raté le www dans l'URL.
Par exemple: vous avez donné http://www.google.com mais dans console.developers.com vous avez donné http://google.com
Il va encore jeter l'erreur. Donc, cela devrait être la correspondance exacte.
J'ai continué à avoir cette même erreur jusqu'à ce que je réalise que je devais mettre "signin-google" à la fin du paramètre de redirection dans la console de Google API, comme ceci (c'est-à-dire, NOT http://www.example.org/ api ):
http://www.example.org/api/signin-google
L'URI de redirection (où la réponse OAuth est renvoyée) doit être enregistré dans Console API Google , et l'erreur indique que vous ne l'avez pas fait ou que vous ne l'avez pas fait correctement.
Accédez à la console de votre projet et recherchez sous API Access. Vous devriez voir votre ID client et votre secret là-bas, avec une liste d'URI de redirection. Si l'URI souhaité ne figure pas dans la liste, cliquez sur Éditer les paramètres et ajoutez l'URI à la liste.
Assurez-vous que dans votre google-client-api, la valeur des informations d'identification dans ce champ correspond à ce que vous avez obtenu de Console API Google :
$client->setClientId('xxx.apps.googleusercontent.com');
$client->setClientSecret('xxx');
$client->setRedirectUri('http://example.com/oauth2callback');
$client->setDeveloperKey('xx');
Cela peut se produire lorsque la valeur de setRedirectUri est différente de celle que vous avez définie dans la console de Google API.