Mensagem de login do Facebook: "URL bloqueado: este redirecionamento falhou porque o URI de redirecionamento não está na lista de permissões nas configurações de cliente OAuth do aplicativo".


121

Notícia importante:

Se você se registrar para o teste, vá para as configurações do seu perfil e, aos seus interesses, adicione o perfil de exclusão .

Tentando fazer login com o Facebook no meu site :

Estou tendo o erro a seguir:

URL bloqueado: este redirecionamento falhou porque o URI de redirecionamento não está na lista de permissões nas configurações de cliente OAuth do aplicativo. Verifique se o Login do cliente e do Web OAuth está ativado e adicione todos os domínios de seu aplicativo como URIs de redirecionamento válido do OAuth.

Meus settings(Noções básicas) no Facebook são:

Na guia avançado, Valid OAuth redirect URIsestá definido como:

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

App é public.

Mais configurações (Avançado) aqui: insira a descrição da imagem aqui

A chave e o segredo do aplicativo estão corretos. Estou usando o Meteor e seus pacotes de contas.


Qual é o seu ROOT_URL?
Aedm

Qual URL você está usando para redirecionar para a página de login do Facebook? Você ainda precisa especificar o redirect_uri na solicitação de autorização.
Edward Jiang

@aedm: ROOT_URL está definido comohttp://openstrategynetwork.com
Amir Rahbaran

@ EdwardJiang: onde posso fazer isso? É estranho, uma vez que estava trabalhando para localhost. Mas mesmo o host local não está mais funcionando.
Amir Rahbaran

Eu estou enfrentando esse problema também, partidas redirect_uri exatamente à configuração em Configurações OAuth do cliente - veja mais em developers.facebook.com/support/bugs/232085950706415 necessidade de ajuda ninguém .. obrigado antecipadamente
jdme

Respostas:


80

O botão de login com o Facebook no seu site 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 prévio: redirect_uri=http://openstrategynetwork.com/_oauth/facebook

Se você alterar o link para:

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

Deveria funcionar. Ou você pode alterar o link do Facebook parahttp://openstrategynetwork.com/_oauth/facebook

Você também pode adicionar http://localhost/_oauth/facebookaos URIs de redirecionamento válidos.

O Facebook exige que você redirecione os URIs da lista de permissões, pois, caso contrário, as pessoas poderão fazer login no Facebook para o seu serviço e enviar seu token de acesso ao servidor do invasor! E você não quer que isso aconteça;]


4
O que exatamente é um URI de redirecionamento do OAuth? Eu esperava que esse fosse o mesmo URL que o aplicativo Web raiz.
AlvinfromDiaspar

1
Isso parece funcionar. Embora eu não tenha certeza se não era originalmente, eu estava tentando fazer login com a conta na qual o aplicativo foi criado. Implementou esta solução e usou uma conta diferente e funcionou (aparentemente). O idioma e as informações nos URIs de redirecionamento oAuth precisam ser claros. A informação é encerrada esotérica e quase misteriosa. Os termos usados ​​nem sequer são definidos ou esclarecidos.
abtecas

muito obrigado corrigiu o meu problema! mesmo que eu tenha o ssl funcionando #
Sweet Chilly Philly

O truque é analisar o URL de redirecionamento e adicioná-lo aos "URIs de redirecionamento válidos do OAuth" no meu caso, isso é signin-facebook.
precisa saber é o seguinte

1. certifique-se de adicionar com e sem URLs www aos seus URIs de redirecionamento de autenticação válida
Bhavin Rana

79

Enquanto o questionador escreve

Na guia avançado, os URIs de redirecionamento válidos do OAuth são definidos para: ...

e tive o mesmo problema (escrevendo o URL de redirecionamento no campo de entrada errado). Gostaria de destacar que

Não é

Settings -> Advanced -> Share Redirect Whitelist

mas

Facebook Login -> Settings -> Valid OAuth redirect URIs

Isso teria me poupado 2 horas de tentativa e erro.

Você também deve ter em mente que www.example.comnão é o mesmo que example.com. Adicione os dois formatos ao URL de redirecionamento.


11
Eleitores em baixa: adicione um comentário sobre suas preocupações; caso contrário, a resposta não ficará melhor.
andymel

6
Jesus, passei tanto tempo procurando no lugar errado, obrigado.
ricks

Tentando adicionar um novo URI, recebo: New HTTP Redirect URIs are not allowed:(
XCS

Muito obrigado. Eu tentei de tudo, mas no lugar errado. O que significa "Lista de permissões de redirecionamento de compartilhamento" significa?
Sunil Kumar

19

Isso funcionou para mim.

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

Entendi isso no meu navegador depois de clicar no botão do Facebook, seu navegador será redirecionado para um link para integração com a API do Facebook, para onde você obterá esse redirecionamento. Para o meu caso, o link era este de onde obtive o 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/

insira a descrição da imagem aqui insira a descrição da imagem aqui


Para o meu aplicativo MVC, tive que adicionar "/ signin-facebook" ao URL do site .... obrigado pela dica maravilhosa!
Davaus 9/07

Você salva minhas semanas @Umar Asghar
kn3l

11

Verifique se " Domínio do aplicativo " e o logon do Facebook => URIs de redirecionamento válidos do OAuth . Lá você deve verificar www ou sem www . É melhor se você usar com www ou sem todas as URLs em php, html, arquivos css e configurações de aplicativos Fb.

Outra coisa é que se você estiver usando o "/" final dos URLs, adicione esse URL às configurações do aplicativo de URIs de redirecionamento válidos do OAuth . Exemplo: - https://www.example.com/index.php/, se esse URL, se você estiver usando o URL de redirecionamento, deverá defini-lo nas configurações do aplicativo.

Espero que isso ajude.


no domínio de aplicativo você adicionar ambos com e sem www
qwertzman

O que você quer dizer com esse post amigo, estou meio confuso.
TheBAST 23/10/19

6

Para meu aplicativo de nó,

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

colocar URL de retorno de chamada relativo

Meu OAuth redireciona URIs da seguinte maneira

insira a descrição da imagem aqui

Verifique se "/" no final do URI de redirecionamento de autenticação do Facebook

Essas configurações funcionaram para mim.


6

No meu caso, eu só tinha que ter meus URLs com e sem www para Domínios de Aplicativos e URLs de Redirecionamento :

insira a descrição da imagem aqui

No meu caso, eu tive que usar: signin-facebookapós o URL do meu site, para redirecionar o URL.


Os domínios de aplicativo são realmente necessários? Quando eu testei localmente, ele trabalhou sem definir App Domains
Darius.V

Você usa oAuth e redirecionamento?
Hooman Bahreini 02/12/19


3

Mudar de hauth.done = Facebook para hauth_done = Facebook nos URIs de redirecionamento válido do OAuth corrigidos para mim.


1

Ok Antes de tudo, é uma mensagem de erro muito clara. Basta olhar para isso, muitos desenvolvedores sentem falta disso, incluindo o meu eu. Dê uma olhada na captura de tela aqui, por favor.

insira a descrição da imagem aqui

Em Produtos> Login no Facebook> Configurações

ou acesse este URL aqui (substitua YOUR_APP_ID pelo id do seu aplicativo, lol):

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

Se você estiver trabalhando em localhost:3000Certifique-se de terhttps://localhost:3000/auth/facebook/callback

Claro que você não precisa ter o status ativo (Green Switch no canto superior direito), mas no meu caso, estou implantando o heroku agora e em breve substituirei localhost:3000porhttps://myapp.herokuapp.com/auth/facebook/callback

Obviamente, atualizarei os URLs em Configurações / Básico e Configurações / Avançado e também adicionarei um URL de política de privacidade na seção básica.

Estou assumindo que você configurou corretamente os inicializadores / devise.rb se estiver usando o devise e tiver o gem 'omniauth-facebook', '~> 4.0'gem do facebook adequado instalado e gem 'omniauth', '~> 1.6'as colunas necessárias na tabela de usuários, como uid, imagem e provedor. É isso aí.


1

Pode ajudar alguém.

Eu recebi a mensagem de erro semelhante, mas apenas em ambientes de desenvolvimento e teste, não em produção. Os URIs de redirecionamento válidos foram definidos corretamente, para os subdomínios de desenvolvimento e de teste, bem como para a produção.

Acabei esquecendo que, nesses ambientes, usamos o aplicativo FB de teste, que é um separado na página do desenvolvedor do FB. Tinha que selecionar isso e atualizar suas configurações.



0

Auxiliar de login do seu site

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

e no painel de aplicativos do facebook (guia Sob produtos: Login do Facebook )

Os URIs de redirecionamento de OAuth válidos também devem ser iguais a xyz.com/user_by_facebook/

conforme mencionado anteriormente ao fazer uma solicitação da web


0

Tivemos o mesmo problema, um pesadelo.

  1. Verifique se os IDs do aplicativo e as chaves secretas estão corretos. Se você estiver usando aplicativos separados de desenvolvimento, preparo e produção para teste, os IDs do aplicativo e as Chaves Secretas serão todos diferentes para cada aplicativo. Este é frequentemente o problema.

  2. Verifique se o URL de retorno de chamada está definido corretamente no arquivo de configuração do aplicativo (veja abaixo). E adicione esse mesmo URL nas configurações de " Login do Facebook ", onde diz " URIs de redirecionamento válidos do OAuth ". Deve ficar assim (dependendo do seu ambiente):

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

  1. Verifique se o domínio do aplicativo está definido no domínio correto para cada ambiente, incluindo "www" e "no-www". O Facebook também exige que esses domínios correspondam ao URL do seu site ou plataforma de aplicativos. Você terá que selecionar " Adicionar plataforma " para adicionar isso.

O requisito de correspondência de URIs de redirecionamento com a URL do site não é possível para mim porque meus URIs de redirecionamento ou definidos em outro servidor e meu site são veiculados em um servidor diferente, como posso fazer isso?
Jawad


0

No meu caso, o URI, como foi definido no FB, estava bom, mas eu estava usando o Spring Security e estava adicionando ; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD ao meu URI, causando a incompatibilidade.

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 a reescrita da URL, adicionei disable-url-rewriting = "true" à configuração do Spring Security, desta maneira:

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

E isso resolveu o meu problema.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.