Mensaje de inicio de sesión de Facebook: "URL bloqueada: este redireccionamiento falló porque el URI de redireccionamiento no está incluido en la lista blanca en la configuración de OAuth del cliente".

121

Noticia importante:

Si se registra para la prueba, vaya a la configuración de su perfil y a sus intereses agregue eliminar perfil .

Intentando iniciar sesión con Facebook en mi sitio web :

Obtuve el siguiente error:

URL bloqueada: este redireccionamiento falló porque el URI de redireccionamiento no está en la lista blanca en la configuración de OAuth del cliente de la aplicación. Asegúrese de que el inicio de sesión de OAuth web y de cliente estén activados y agregue todos los dominios de su aplicación como URI de redireccionamiento de OAuth válidos.

Mis settings(conceptos básicos) en Facebook son:

En la pestaña avanzada, Valid OAuth redirect URIsse establece en:

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

La aplicación es public.

Más configuraciones (avanzado) aquí: ingrese la descripción de la imagen aquí

La clave y el secreto de la aplicación son correctos. Estoy usando Meteor y sus paquetes de cuentas.

Amir Rahbaran
fuente
¿Cuál es tu ROOT_URL?
aedm
¿Qué URL está usando para redirigir a la página de inicio de sesión de Facebook? Aún debe especificar redirect_uri en la solicitud de autorización.
Edward Jiang
@aedm: ROOT_URL está configurado parahttp://openstrategynetwork.com
Amir Rahbaran
@EdwardJiang: ¿dónde puedo hacer eso? Es extraño, ya que una vez funcionó para localhost. Pero incluso localhost ya no funciona.
Amir Rahbaran
También estoy experimentando este problema, redirect_uri coincide exactamente con la configuración en Client OAuth Settings - vea más en developers.facebook.com/support/bugs/232085950706415 necesito ayuda a cualquiera ... gracias de antemano
jdme

Respuestas:

80

El botón de inicio de sesión con Facebook en su sitio está vinculado a:

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

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

Si, en cambio, cambia el enlace a:

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

Deberia de funcionar. O puede cambiar el enlace de Facebook ahttp://openstrategynetwork.com/_oauth/facebook

También puede agregar http://localhost/_oauth/facebooka los URI de redireccionamiento válidos.

Facebook requiere que incluya en la lista blanca los URI de redireccionamiento, ya que de lo contrario, las personas podrían iniciar sesión con Facebook para su servicio y luego enviar su token de acceso al servidor de un atacante. Y no quieres que eso suceda;]

Edward Jiang
fuente
4
¿Qué es exactamente un URI de redireccionamiento de OAuth? Esperaría que esta sea la misma URL que la aplicación web raíz.
AlvinfromDiaspar
1
Esto parece funcionar. Aunque no estoy seguro de si no fue originalmente, ya que estaba tratando de iniciar sesión con la cuenta con la que he creado la aplicación. Implementé esta solución, usé una cuenta diferente y funcionó (aparentemente). El idioma y la información de los URI de redireccionamiento de oAuth deben ser claros. La información es bastante esotérica y casi arcana. Los términos utilizados ni siquiera están definidos o aclarados.
abtecas
¡Muchas gracias solucionó mi problema! aunque tengo ssl funcionando
Sweet Chilly Philly
El truco consiste en mirar la URL de redireccionamiento y agregarla a los "URI de redireccionamiento de OAuth válidos" en mi caso, eso es signin-facebook.
Usama Saleem
1.Asegúrese de
79

Como escribe el interrogador

En la pestaña avanzada, los URI de redireccionamiento de OAuth válidos se establecen en: ...

y tuve el mismo problema (escribir la URL de redireccionamiento en el campo de entrada incorrecto) Me gustaría resaltar eso

No es

Settings -> Advanced -> Share Redirect Whitelist

pero

Facebook Login -> Settings -> Valid OAuth redirect URIs

Me habría ahorrado 2 horas de prueba y error.

También debes tener en cuenta que www.example.comno es lo mismo que example.com. Agregue ambos formatos a la URL de redireccionamiento.

andymel
fuente
11
Votantes en contra: agregue un comentario sobre sus inquietudes; de lo contrario, la respuesta no mejorará.
Andymel
6
Jesús, pasé mucho tiempo buscando en el lugar equivocado, gracias.
ricks
Tratando de agregar un nuevo URI obtengo: New HTTP Redirect URIs are not allowed:(
XCS
Muchas gracias. Intenté todo, pero en el lugar equivocado. ¿Qué significa "Compartir lista blanca de redireccionamiento"?
Sunil Kumar
20

Esto funcionó para mí.

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

Lo obtuve de mi navegador después de hacer clic en el botón de Facebook, su navegador será redirigido a un enlace para integrarse con la API de Facebook, por lo que obtendrá esa redirección. Para mi caso, el enlace fue este de donde obtuve redirect_url.

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/

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Umar Asghar
fuente
Para mi aplicación MVC, tuve que agregar "/ signin-facebook" a la URL del sitio ... ¡gracias por el maravilloso consejo!
Davaus
Salvas mis semanas @Umar Asghar
kn3l
11

Asegúrese de que " App Domain " y Facebook Login => URI de redirección de OAuth válidos . Allí debe consultar www o sin www . Es mejor si lo usa con www o sin para todas las URL en php, html, archivos css y configuraciones de aplicaciones Fb.

Otra cosa es que si está usando el final "/" de las URL, debe agregar esa URL a la configuración de la aplicación de los URI de redireccionamiento de OAuth válidos . Ejemplo: - https://www.example.com/index.php/ si esta URL si la está usando en la URL de redireccionamiento, debe configurarla en la configuración de la aplicación.

Espero que esto sea de ayuda.

Sumith Harshan
fuente
en el dominio de la aplicación, agrega con y sin www
qwertzman
¿Qué quieres decir con esta publicación, amigo, estoy un poco confundido?
TheBAST
6

Para mi aplicación de nodo,

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

poner URL de devolución de llamada relativa

Mi OAuth redirecciona los URI de la siguiente manera

ingrese la descripción de la imagen aquí

Asegúrese de "/" al final del URI de redireccionamiento de autenticación de Facebook

Estas configuraciones funcionaron para mí.

NIKHIL CM
fuente
6

En mi caso, solo tenía que asegurarme de tener mis URL con y sin www para el dominio de la aplicación y las URL de redireccionamiento :

ingrese la descripción de la imagen aquí

En mi caso, tuve que usar: signin-facebookdespués de la URL de mi sitio, para redireccionar la URL.

Hooman Bahreini
fuente
¿Son realmente necesarios los dominios de aplicaciones? Cuando probé localmente, funcionó sin configurar los dominios de la aplicación
Darius.V
¿Utiliza oAuth y redirección?
Hooman Bahreini
si. Uso el paquete de Symfony github.com/knpuniversity/oauth2-client-bundle
Darius.V
3

Cambiar de hauth.done = Facebook a hauth_done = Facebook en los URI de redireccionamiento de OAuth válidos lo solucionó.

chica friki
fuente
1

Ok En primer lugar, este es un mensaje de error muy claro. Solo mira esto, muchos desarrolladores extrañan esto, incluido yo mismo. Eche un vistazo a la captura de pantalla aquí por favor.

ingrese la descripción de la imagen aquí

En Productos> Inicio de sesión de Facebook> Configuración

o simplemente vaya a esta url aquí (Reemplace YOUR_APP_ID con su ID de aplicación lol):

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

Si está trabajando en localhost:3000Asegúrese de tenerhttps://localhost:3000/auth/facebook/callback

Por supuesto, no es necesario que tenga el estado en vivo (Interruptor verde en la esquina superior derecha) pero en mi caso, estoy implementando a heroku ahora y pronto lo reemplazaré localhost:3000conhttps://myapp.herokuapp.com/auth/facebook/callback

Por supuesto, actualizaré las URL en Configuración / Básico y Configuración / Avanzado y también agregaré una URL de política de privacidad en la sección básica.

Supongo que ha configurado correctamente initializers / devise.rb si está utilizando devise y tiene gem 'omniauth-facebook', '~> 4.0'instalada la gema de Facebook adecuada y gem 'omniauth', '~> 1.6', y tiene las columnas necesarias en su tabla de usuarios, como uid, imagen y proveedor. Eso es.

Elias Glyptis
fuente
1

Podría ayudar a alguien.

Tuve un mensaje de error similar, pero solo en entornos de desarrollo y preparación, no en producción. Los URI de redireccionamiento válidos se establecieron correctamente, para los subdominios de desarrollo y preparación, así como para la producción.

Resultó que olvidé que para esos entornos usamos la aplicación de prueba FB, que es una aplicación separada en la página del desarrollador de FB. Tuve que seleccionar eso y actualizar su configuración.

vargen_
fuente
0

Intente agregar http://openstrategynetwork.com/ sigin-facebook a la URL de redireccionamiento válida de Client OAuth Settings junto con su propia URL de redireccionamiento.

Hung Vu
fuente
0

Ayudante de inicio de sesión de su sitio

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

y en el panel de la aplicación de Facebook (en la pestaña de productos: Inicio de sesión de Facebook )

Los URI de redireccionamiento de OAuth válidos también deben ser los mismos que xyz.com/user_by_facebook/

como se mencionó anteriormente al realizar una solicitud desde la web

zohaib
fuente
0

Tuvimos el mismo problema, una pesadilla.

  1. Asegúrese de que sus ID de aplicaciones y claves secretas sean correctas. Si está utilizando aplicaciones de desarrollo, puesta en escena y producción independientes para las pruebas, las ID de aplicación y las claves secretas son todas diferentes para cada aplicación. Este suele ser el problema.

  2. Asegúrese de tener la URL de devolución de llamada configurada correctamente en el archivo de configuración de su aplicación (ver más abajo). Y luego agregue esto como la misma URL en la configuración de " Inicio de sesión de Facebook " donde dice " URI de redireccionamiento de OAuth válidos ". Debería verse así (dependiendo de su entorno):

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

  1. Asegúrese de que el dominio de su aplicación esté configurado en el dominio correcto para cada entorno, incluidos "www" y "no-www". Facebook también requiere que estos dominios coincidan con la URL de su sitio web o plataforma de aplicaciones. Deberá seleccionar " Agregar plataforma " para agregar esto.
kaleazy
fuente
El requisito de hacer coincidir los URI de redireccionamiento con la URL del sitio web no es posible para mí porque mis URI de redireccionamiento o están definidos en otro servidor y mi sitio web se sirve desde un servidor diferente, ¿cómo puedo hacerlo?
Jawad
0

En mi caso, estaba integrando el inicio de sesión de Facebook dentro de un tutorial de la aplicación Rails. Había agregado http: // localhost: 3000 / adsf a mis URI de redireccionamiento de OAuth válidos, pero la aplicación Rails abriría la URL como http://0.0.0.0:3000 y, por lo tanto, intentaría redirigir a http: //0.0. 0,0: 3000 / asdf . Después de agregar http://0.0.0.0:3000/asdf a los URI de redireccionamiento de OAuth válidos, o de navegar a http: // localhost: 3000 / asdf , funcionó como se esperaba.

jausel
fuente
0

En mi caso, URI, tal como se definió en FB, estaba bien, pero estaba usando Spring Security y estaba agregando ; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD a mi URI, por lo que causó la falta de coincidencia.

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

Para evitar la reescritura de la URL, agregué disable-url-rewriting = "true" a la configuración de Spring Security, de esta manera:

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

Y solucionó mi problema.

lm2a
fuente