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.