Message de connexion Facebook: "URL bloquée: cette redirection a échoué car l'URI de redirection n'est pas en liste blanche dans les paramètres OAuth du client de l'application."

121

Avis important:

Si vous vous inscrivez pour un test, accédez aux paramètres de votre profil et à vos centres d' intérêt, ajoutez un profil de suppression .

Essayer de vous connecter avec Facebook à mon site Web :

J'obtiens l'erreur suivante:

URL bloquée: cette redirection a échoué, car l'URI de redirection ne figure pas sur la liste blanche dans les paramètres OAuth du client de l'application. Assurez-vous que la connexion Client et Web OAuth est activée et ajoutez tous vos domaines d'application en tant qu'URI de redirection OAuth valides.

Mes settings(Bases) sur Facebook sont:

Dans l'onglet avancé, Valid OAuth redirect URIsest défini sur:

http://openstrategynetwork.com/_oauth/facebook?close

L'application est public.

Plus de paramètres (avancés) ici: entrez la description de l'image ici

La clé et le secret de l'application sont corrects. J'utilise Meteor et ses packages de comptes.

Amir Rahbaran
la source
Quelle est votre ROOT_URL?
aedm
Quelle URL utilisez-vous pour rediriger vers la page de connexion Facebook? Vous devez toujours spécifier le redirect_uri dans la demande d'autorisation.
Edward Jiang
@aedm: ROOT_URL est réglé surhttp://openstrategynetwork.com
Amir Rahbaran
@EdwardJiang: où puis-je faire ça? C'est étrange car il fonctionnait autrefois pour localhost. Mais même localhost ne fonctionne plus.
Amir Rahbaran
Je rencontre également ce problème, redirect_uri correspond exactement à la configuration dans les paramètres OAuth du client - pour en savoir plus, consultez les développeurs.facebook.com
support

Réponses:

80

Le bouton de connexion avec Facebook sur votre site est lié à:

https://www.facebook.com/v2.2/dialog/oauth?client_id=1500708243571026&redirect_uri=http://openstrategynetwork.com/_oauth/facebook&display=popup&scope=email&state=eyJsb2dpblN0eWxlIjoicG9wdXAiLCJjcmVkZW50aWFsVG9rZW4iOiIwSXhEU05XamJjU0VaQWdqcmF6SXdOUWRuRFozXzc0X19lbVhGWUJTZGNYIiwiaXNDb3Jkb3ZhIjpmYWxzZX0=

Remarquer: redirect_uri=http://openstrategynetwork.com/_oauth/facebook

Si vous remplacez le lien par:

redirect_uri=http://openstrategynetwork.com/_oauth/facebook?close

Ça devrait marcher. Ou, vous pouvez changer le lien Facebook enhttp://openstrategynetwork.com/_oauth/facebook

Vous pouvez également ajouter http://localhost/_oauth/facebookaux URI de redirection valides.

Facebook exige que vous mettiez sur liste blanche les URI de redirection, sinon les gens pourraient se connecter avec Facebook pour votre service, puis envoyer leur jeton d'accès au serveur d'un attaquant! Et vous ne voulez pas que cela se produise;]

Edward Jiang
la source
4
Qu'est-ce qu'un URI de redirection OAuth exactement? Je m'attendrais à ce que ce soit la même URL que l'application Web racine.
AlvinfromDiaspar
1
Cela semble fonctionner. Bien que je ne sois pas sûr que ce ne soit pas à l'origine, j'essayais de me connecter avec le compte sous lequel j'ai créé l'application. Implémenté cette solution, et utilisé un compte différent et cela a fonctionné (apparemment). La langue et les informations sur les URI de redirection oAuth doivent être claires. L'information est assez ésotérique et presque obscure. Les termes utilisés ne sont même pas définis ou clarifiés.
abtecas
merci beaucoup a résolu mon problème! même si je fais fonctionner ssl
Sweet Chilly Philly
L'astuce consiste à regarder l'URL de redirection et à l'ajouter aux "URI de redirection OAuth valides" dans mon cas, c'est signin-facebook.
Usama Saleem
1.Assurez-vous d'ajouter avec et sans les URL www à vos URI de redirection d'authentification valide
Bhavin Rana
79

Comme l'écrit l'interrogateur

Dans l'onglet avancé, les URI de redirection OAuth valides sont définis sur: ...

et j'ai eu le même problème (écrire l'URL de redirection dans le mauvais champ de saisie) Je voudrais souligner que

Ce n'est pas

Settings -> Advanced -> Share Redirect Whitelist

mais

Facebook Login -> Settings -> Valid OAuth redirect URIs

Cela m'aurait sauvé 2 heures d'essais et d'erreurs.

Vous devez également garder à l'esprit que ce www.example.comn'est pas la même chose que example.com. Ajoutez les deux formats à l'URL de redirection.

Andymel
la source
11
Down-votants: veuillez ajouter un commentaire sur vos préoccupations, sinon la réponse ne s'améliorera pas.
andymel
6
Jésus, j'ai passé tellement de temps à chercher au mauvais endroit, merci.
ricks
En essayant d'ajouter un nouvel URI, j'obtiens: New HTTP Redirect URIs are not allowed:(
XCS
Merci beaucoup. J'ai tout essayé, mais au mauvais endroit. Que signifie «Partager la liste blanche de redirection»?
Sunil Kumar
20

Cela a fonctionné pour moi.

redierct_url = http://127.0.0.1:8080/accounts/facebook/login/callback/

J'ai obtenu cela de mon navigateur après avoir cliqué sur le bouton Facebook, votre navigateur sera redirigé vers un lien pour l'intégration avec l'API Facebook, donc où vous obtiendrez cette redirection. Pour mon cas, le lien était celui d'où j'ai obtenu l'url de redirection.

https://www.facebook.com/dialog/oauth?client_id=...&scope=&response_type=code&state=...&redirect_uri=http://127.0.0.1:8080/accounts/facebook/login/callback/

entrez la description de l'image ici entrez la description de l'image ici

Umar Asghar
la source
Pour mon application MVC, j'ai dû ajouter "/ signin-facebook" à l'url du site .... merci pour la merveilleuse astuce!
davaus le
Vous économisez mes semaines @Umar Asghar
kn3l
11

Assurez-vous que " App Domain " et Facebook Login => URI de redirection OAuth valides . Là, vous devez vérifier www ou sans www . C'est mieux si vous utilisez avec www ou sans pour toutes les URL dans les fichiers php, html, css et les paramètres de l'application Fb.

Une autre chose est que si vous utilisez la fin "/" des URL, vous devez ajouter cette URL aux paramètres d'application des URI de redirection OAuth valides . Exemple: - https://www.example.com/index.php/ si cette URL si vous l'utilisez dans l'URL de redirection, vous devez la définir dans les paramètres de l'application.

J'espère que ce serait une aide.

Sumith Harshan
la source
dans le domaine d'application, vous ajoutez à la fois avec et sans www
qwertzman
Que voulez-vous dire par cet ami de poste, je suis un peu confus.
TheBAST
6

Pour mon application Node,

"facebook": {
        "clientID" : "##############",
        "clientSecret": "####################",
        "callbackURL": "/auth/facebook/callback/"
    }

mettre l'URL de rappel relative

Mes URI de redirection OAuth comme suit

entrez la description de l'image ici

Assurez-vous que "/" à la fin de l'URI de redirection d'authentification Facebook

Ces configurations ont fonctionné pour moi.

NIKHIL CM
la source
6

Dans mon cas, je devais simplement m'assurer que j'avais mes URL avec et sans www pour le domaine d'application et les URL de redirection :

entrez la description de l'image ici

Dans mon cas, j'ai dû utiliser: signin-facebookaprès l'url de mon site, pour l'url de redirection.

Hooman Bahreini
la source
Les domaines d'application sont-ils vraiment nécessaires? Lorsque j'ai testé localement, cela a fonctionné sans définir de domaines d'application
Darius.V
Utilisez-vous oAuth et la redirection?
Hooman Bahreini
Oui. J'utilise le bundle symfony github.com/knpuniversity/oauth2-client-bundle
Darius.V
3

Le passage de hauth.done = Facebook à hauth_done = Facebook dans les URI de redirection OAuth valides a corrigé le problème pour moi.

jeune fille
la source
1

Ok Tout d'abord, c'est un message d'erreur très clair. Il suffit de regarder ces nombreux développeurs qui manquent, y compris moi-même. Jetez un œil à la capture d'écran ici s'il vous plaît.

entrez la description de l'image ici

Sous Produits> Connexion Facebook> Paramètres

ou accédez simplement à cette URL ici (remplacez YOUR_APP_ID par votre identifiant d'application lol):

https://developers.facebook.com/apps/YOUR_APP_ID/fb-login/settings/

Si vous travaillez sur localhost:3000Assurez-vous d'avoirhttps://localhost:3000/auth/facebook/callback

Bien sûr, vous n'avez pas besoin d'avoir le statut en direct (interrupteur vert dans le coin supérieur droit) mais dans mon cas, je déploie sur heroku maintenant et je le remplacerai bientôt localhost:3000parhttps://myapp.herokuapp.com/auth/facebook/callback

Bien sûr, je mettrai à jour les URL dans Paramètres / De base et Paramètres / Avancé et j'ajouterai également une URL de politique de confidentialité dans la section de base.

Je suppose que vous avez correctement configuré les initialiseurs / devise.rb si vous utilisez devise et que vous avez gem 'omniauth-facebook', '~> 4.0'installé le joyau facebook approprié gem 'omniauth', '~> 1.6'et que vous avez les colonnes nécessaires dans votre table d'utilisateurs telles que uid, image et provider. C'est tout.

Elias Glyptis
la source
1

Cela pourrait aider quelqu'un.

J'ai eu le message d'erreur similaire, mais uniquement dans les environnements de développement et de préparation, pas en production. Les URI de redirection valides ont été correctement définis, pour les sous-domaines de développement et de préparation ainsi que pour la production.

Il s'est avéré que j'avais oublié que pour ces environnements, nous utilisons l'application de test FB, qui est distincte dans la page des développeurs FB. J'ai dû sélectionner cela et mettre à jour ses paramètres.

vargen_
la source
0

Essayez d'ajouter http://openstrategynetwork.com/ sigin-facebook aux paramètres Client OAuth URL de redirection valide avec votre propre URL de redirection.

Hung Vu
la source
0

Aide à la connexion de votre site

$ loginUrl = $ helper-> getLoginUrl ('xyz.com/user_by_facebook/', $ permissions);

et dans le tableau de bord de l'application Facebook (Sous l'onglet Produits: Connexion Facebook )

Les URI de redirection OAuth valides doivent également être identiques à xyz.com/user_by_facebook/

comme mentionné précédemment lors de la demande depuis le Web

Zohaib
la source
0

Nous avons eu le même problème, un tel cauchemar.

  1. Assurez-vous que vos identifiants d'application et vos clés secrètes sont corrects. Si vous utilisez des applications de développement, de préparation et de production distinctes pour les tests, les ID d'application et les clés secrètes sont tous différents pour chaque application. C'est souvent le problème.

  2. Assurez-vous que l'URL de rappel est correctement définie dans le fichier de configuration de votre application (voir ci-dessous). Et puis ajoutez ceci en tant que même URL sous les paramètres " Connexion Facebook " où il est dit " URI de redirection OAuth valides ". Cela devrait ressembler à ceci (selon votre environnement):

http://localhost/auth/facebook/callback http://staging.example.com/auth/facebook/callback http://example.com/auth/facebook/callback

  1. Assurez-vous que le domaine de votre application est défini sur le domaine approprié pour chaque environnement, y compris à la fois "www" et "no-www". Facebook exige également que ces domaines correspondent à l'URL de votre site Web ou de votre plate-forme d'application. Vous devrez sélectionner " Ajouter une plateforme " pour l'ajouter.
kaleazy
la source
l'exigence de faire correspondre les URI de redirection avec l'URL du site Web n'est pas possible pour moi car mes URI de redirection ou définis sur un autre serveur et mon site Web est servi à partir d'un serveur différent, comment puis-je m'y prendre?
Jawad
0

Dans mon cas, j'intégrais la connexion Facebook dans un didacticiel de l'application Rails. J'avais ajouté http: // localhost: 3000 / adsf à mes URI de redirection OAuth valides, mais l'application Rails ouvrirait l'url en tant que http://0.0.0.0:3000 et essaierait donc de rediriger vers http: //0.0. 0,0: 3000 / asdf . Après avoir ajouté http://0.0.0.0:3000/asdf aux URI de redirection OAuth valides ou accédé à http: // localhost: 3000 / asdf , cela a fonctionné comme prévu.

Jausel
la source
0

Dans mon cas, l'URI, tel qu'il a été défini sur FB, allait bien, mais j'utilisais Spring Security et il ajoutait ; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD à mon URI, cela a donc provoqué la non-correspondance.

https://m.facebook.com/v2.5/dialog/oauth?client_id=your-fb-id-code&response_type=code&redirect_uri=https://localizator.org/auth/facebook;jsessionid=0B9A5E71DAA32A01A3CD351E6CA1FCDD&scope=email&state=b180578a-007b-48bc-bd81-4b08c6989e18

Afin d'éviter la réécriture d'URL, j'ai ajouté disable-url-rewriting = "true" à la configuration de Spring Security, de cette manière:

<http auto-config="true" access-denied-page="/security/accessDenied" use-expressions="true"
      disable-url-rewriting="true" entry-point-ref="authenticationEntryPoint"/> 

Et cela a résolu mon problème.

lm2a
la source