Facebook 로그인 메시지 : "URL 차단됨 : 리디렉션 URI가 앱의 클라이언트 OAuth 설정에 허용되지 않기 때문에이 리디렉션이 실패했습니다."


121

중요 공지 :

테스트를 위해 등록하는 경우 프로필 설정으로 이동하고 관심 분야에서 프로필 삭제를 추가 하십시오 .

내 웹 사이트에 Facebook으로 로그인 시도 중 :

다음과 같은 오류가 발생합니다.

URL 차단됨 : 리디렉션 URI가 앱의 클라이언트 OAuth 설정에 허용되지 않았기 때문에이 리디렉션이 실패했습니다. 클라이언트 및 웹 OAuth 로그인이 켜져 있는지 확인하고 모든 앱 도메인을 유효한 OAuth 리디렉션 URI로 추가합니다.

settingsFacebook의 내 (기본)은 다음과 같습니다.

고급 탭에서 다음 Valid OAuth redirect URIs으로 설정됩니다.

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

앱은 public입니다.

여기에 추가 설정 (고급) : 여기에 이미지 설명 입력

앱 키와 비밀번호가 정확합니다. 저는 Meteor와 그 계정 패키지를 사용하고 있습니다.


ROOT_URL은 무엇입니까?
— aedm

Facebook 로그인 페이지로 리디렉션하는 데 어떤 URL을 사용하고 있습니까? 인증 요청에서 redirect_uri를 지정해야합니다.
— Edward Jiang

@aedm : ROOT_URL 설정http://openstrategynetwork.com
— Amir Rahbaran

@EdwardJiang : 어디서 할 수 있습니까? 한때 localhost에서 작동했기 때문에 이상합니다. 그러나 localhost조차 더 이상 작동하지 않습니다.
— Amir Rahbaran

나는 클라이언트의 OAuth 설정에서 설정 정확하게, 또한 redirect_uri로 경기를이 문제가 발생하고있다 -에 대한 자세한 참조 developers.facebook.com/support/bugs/232085950706415의 사전에 .. 도움이 필요 누구 덕분에
— jdme

답변:


80

귀하의 사이트에있는 Facebook 버튼으로 로그인은 다음 링크로 연결됩니다.

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

주의: redirect_uri=http://openstrategynetwork.com/_oauth/facebook

대신 링크를 다음으로 변경하는 경우 :

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

작동합니다. 또는 Facebook 링크를 다음으로 변경할 수 있습니다.http://openstrategynetwork.com/_oauth/facebook

http://localhost/_oauth/facebook유효한 리디렉션 URI에 추가 할 수도 있습니다 .

Facebook에서는 리디렉션 URI를 허용 목록에 추가해야합니다. 그렇지 않으면 사람들이 서비스를 위해 Facebook에 로그인 한 다음 공격자의 서버로 액세스 토큰을 보낼 수 있기 때문입니다! 그리고 당신은 그런 일이 일어나기를 원하지 않습니다;]


4
OAuth 리디렉션 URI는 정확히 무엇입니까? 이것이 루트 웹 앱과 동일한 URL이 될 것으로 예상합니다.
— AlvinfromDiaspar

1
이것은 작동하는 것 같습니다. 내가 만든 앱이있는 계정으로 로그인하려고했기 때문에 원래가 아닌지 확실하지 않지만. 이 솔루션을 구현하고 다른 계정을 사용했으며 (겉보기에) 작동했습니다. oAuth 리디렉션 URI에 대한 언어 및 정보는 명확해야합니다. 정보는 그만두고 난해하고 거의 비전입니다. 사용 된 용어는 정의되거나 명확하지 않습니다.
— abtecas

내 문제를 해결해 주셔서 감사합니다! 내가 SSL 작업 얻었다하더라도
— 달콤한 칠리 필라델피아

트릭은 리디렉션 URL을 확인하고이를 "유효한 OAuth 리디렉션 URI"에 추가하는 것입니다.
— Usama Saleem

1. 유효한 인증 리디렉션 URI에
— Bhavin Rana

79

질문자가 쓴대로

고급 탭에서 유효한 OAuth 리디렉션 URI는 다음으로 설정됩니다. ...

그리고 동일한 문제가 발생했습니다 (잘못된 입력 필드에 리디렉션 URL 작성).

아닙니다

Settings -> Advanced -> Share Redirect Whitelist

그러나

Facebook Login -> Settings -> Valid OAuth redirect URIs

2 시간의 시행 착오를 절약 할 수 있었을 것입니다.

www.example.com와 동일하지 않다는 점도 염두에 두어야합니다 example.com. 리디렉션 URL에 두 형식을 모두 추가합니다.


11
반대 투표자 : 우려 사항에 대한 의견을 추가하십시오. 그렇지 않으면 답변이 개선되지 않습니다.
— andymel dec.

6
예수님, 저는 잘못된 곳을 찾는 데 너무 많은 시간을 보냈습니다. 감사합니다.
— ricks

새 URI를 추가하려고하면 다음과 같은 결과가 나타납니다. New HTTP Redirect URIs are not allowed:(
— XCS

정말 고마워. 나는 모든 것을 시도했지만 잘못된 곳에서. "공유 리디렉션 화이트리스트"는 무엇을 의미합니까?
— Sunil Kumar

19

이것은 나를 위해 일했습니다.

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

내 브라우저에서 Facebook 버튼을 클릭하면 브라우저가 Facebook API와 통합하기위한 링크로 리디렉션되므로 리디렉션을받을 수 있습니다. 제 경우 링크는 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/

여기에 이미지 설명 입력 여기에 이미지 설명 입력


내 MVC 애플리케이션의 경우 사이트 URL에 "/ signin-facebook"을 추가해야했습니다. 멋진 팁에 감사드립니다!
— davaus

@Umar Asghar
— kn3l

11

" 앱 도메인 "및 Facebook 로그인 => 유효한 OAuth 리디렉션 URI를 확인하십시오 . www 를 확인 하거나 www없이 확인해야합니다 . php, html, css 파일 및 Fb 앱 설정의 모든 URL에 대해 www와 함께 사용하거나 사용하지 않고 사용하는 것이 좋습니다.

다른 것은 URL 끝에 "/"를 사용하는 경우 해당 URL을 유효한 OAuth 리디렉션 URI 의 앱 설정에 추가해야한다는 것 입니다. 예 : - https://www.example.com/index.php/ 개봉 리디렉션에 사용하는 경우이 URL이 응용 프로그램 설정이 설정해야합니다 URL합니다.

이것이 도움이되기를 바랍니다.


앱 도메인에서 www를 포함하거나 포함하지 않고 모두 추가합니다
— qwertzman

이 게시물 친구가 의미하는 바는 다소 혼란 스럽습니다.
— TheBAST

6

내 노드 애플리케이션의 경우

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

콜백 URL 상대 입력

내 OAuth 리디렉션 URI는 다음과 같습니다.

여기에 이미지 설명 입력

물론 확인 "/" 에서 URI 리디렉션 페이스 북 인증의 끝

이 설정은 나를 위해 일했습니다.


6

제 경우에는 응용 프로그램 도메인 및 리디렉션 URL에 대해 www 가 있거나없는 URL이 있는지 확인해야했습니다 .

여기에 이미지 설명 입력

제 경우에는 signin-facebook리디렉션 URL을 위해 내 사이트 URL 다음 에 사용해야했습니다 .


앱 도메인이 정말 필요합니까? 내가 로컬에서 테스트 할 때 응용 프로그램 도메인 설정하지 않고 일
— Darius.V

oAuth 및 리디렉션을 사용합니까?
— Hooman Bahreini

예. 내가 사용 심포니 번들 github.com/knpuniversity/oauth2-client-bundle
— Darius.V

3

에서 변경 hauth.done = 페이스 북 에 hauth_done = 페이스 북 유효한 OAuth를 리디렉션 된 URI에 나를 위해 그것을 해결했습니다.


1

Ok 우선 이것은 매우 명확한 오류 메시지입니다. 이 많은 개발자들이 내 자신을 포함하여 이것을 그리워합니다. 여기 스크린 샷을보세요.

여기에 이미지 설명 입력

제품> Facebook 로그인> 설정에서

또는 여기에있는이 URL로 이동하십시오 (YOUR_APP_ID를 앱 ID로 바꿉니다 lol).

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

당신이에서 작업하는 경우 localhost:3000있는지 확인하십시오, 당신은https://localhost:3000/auth/facebook/callback

물론 상태를 라이브로 표시 할 필요는 없지만 (오른쪽 상단 모서리에있는 녹색 스위치) 제 경우에는 지금 heroku에 배포 중이며 곧 다음으로 대체 localhost:3000됩니다.https://myapp.herokuapp.com/auth/facebook/callback

물론 설정 / 기본 및 설정 / 고급에서 URL을 업데이트하고 기본 섹션에 개인 정보 보호 정책 URL을 추가합니다.

devise를 사용하고 있고 적절한 facebook gem 'omniauth-facebook', '~> 4.0'gem이 설치되어 있고 gem 'omniauth', '~> 1.6'uid, image 및 provider와 같은 사용자 테이블에 필요한 열이있는 경우 initializers / devise.rb를 올바르게 구성했다고 가정합니다 . 그게 다야.


1

누군가를 도울 수 있습니다.

비슷한 오류 메시지가 있었지만 프로덕션이 아닌 개발 및 스테이징 환경에서만 발생했습니다. 개발 및 스테이징 하위 도메인과 프로덕션에 대해 유효한 리디렉션 URI가 올바르게 설정되었습니다.

이러한 환경에서는 FB 개발자 페이지에서 별도의 테스트 FB 앱을 사용한다는 사실을 잊었습니다. 그것을 선택하고 설정을 업데이트해야했습니다.



0

사이트의 로그인 도우미

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

및 facebook 응용 프로그램 대시 보드에서 (제품 탭 아래 : Facebook 로그인 )

유효한 OAuth 리디렉션 URI 도 xyz.com/user_by_facebook/과 동일해야합니다.

웹에서 요청하는 동안 앞서 언급했듯이


0

우리는 같은 문제, 그런 악몽을 가졌습니다.

  1. 앱 ID와 비밀 키가 올바른지 확인하십시오. 테스트를 위해 별도의 개발, 스테이징 및 프로덕션 앱을 사용하는 경우 앱 ID와 비밀 키는 모두 앱마다 다릅니다. 이것은 종종 문제입니다.

  2. 앱 구성 파일에 콜백 URL이 올바르게 설정되어 있는지 확인하십시오 (아래 참조). 그런 다음 " Facebook 로그인 "설정에서 " 유효한 OAuth 리디렉션 URI " 라고 표시된 동일한 URL로 추가합니다 . 다음과 같이 표시되어야합니다 (환경에 따라 다름).

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

  1. 앱 도메인이 "www"및 "no-www"를 포함하여 각 환경에 대해 올바른 도메인으로 설정되어 있는지 확인하십시오. Facebook은 또한 이러한 도메인이 귀하의 웹 사이트 또는 앱 플랫폼의 URL과 일치하도록 요구합니다. 이것을 추가 하려면 " 플랫폼 추가 "를 선택 해야합니다.

리디렉션 URI를 웹 사이트의 URL과 일치시켜야한다는 요구 사항은 내 리디렉션 URI 또는 ​​다른 서버에 정의되어 있고 내 웹 사이트가 다른 서버에서 제공되기 때문에 가능하지 않습니다.
— Jawad

0

제 경우에는 Rails 앱 튜토리얼에 Facebook 로그인을 통합했습니다. 유효한 OAuth 리디렉션 URI 에 http : // localhost : 3000 / adsf 를 추가 했지만 Rails 앱은 URL을 http://0.0.0.0:3000 으로 열고 http : //0.0 으로 리디렉션하려고합니다 . 0.0 : 3000 / asdf . 추가 한 후 http://0.0.0.0:3000/asdf을 유효한 OAuth를 리디렉션 URI에에, 또는으로 이동 에 http : // localhost를 : 3000 / asdf을가 예상대로 일했다.


0

필자의 경우 URI는 FB에 정의 된대로 괜찮 았지만 Spring Security를 ​​사용하고 있었고 ; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD 를 내 URI에 추가했기 때문에 불일치가 발생했습니다.

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

URL 재 작성을 방지하기 위해 다음 과 같이 Spring Security 구성 에 disable-url-rewriting = "true" 를 추가했습니다.

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

그리고 그것은 내 문제를 해결했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.