Facebook OAuth“이 URL의 도메인은 앱의 도메인에 포함되어 있지 않습니다”


248

먼저이 질문에 대한 답변을 꽤 오랫동안 검색했다고 말하면서 시작하겠습니다 ...

컴퓨터에서 로컬로 개발중인 응용 프로그램과 작동하도록 Facebook OAuth를 설정하려고합니다. Facebook 인증을 사용하여 모든 것이 완벽하게 작동 localhost했습니다. 다른 도메인 이름 (여전히 내 컴퓨터의 로컬 이름)으로 사용 하기 전까지 는 다음과 같은 오류가 발생합니다.

URL을로드 할 수 없음 :이 URL의 도메인은 앱의 도메인에 포함되지 않습니다. 이 URL을로드하려면 앱의 모든 도메인 및 하위 도메인을 앱 설정의 앱 도메인 필드에 추가하십시오.

내 호스트 파일에 127.0.0.1 photovote.dev (완벽하게 작동)

내 앱에서 내 리디렉션 (소셜 라이트 사용)은 http://photovote.dev/auth/facebook/callback

내 Facebook 앱 설정에서 ...

  • 내 앱 도메인은 photovote.dev
  • 내 사이트 URL은 http://photovote.dev/
  • 유효한 OAuth 리디렉션 URI는 http://photovote.dev/auth/facebook/callback

오류 메시지 시점의 URL은 다음과 같습니다.

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fphotovote.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code&state=0ztcKhmWwFLtj72TWE8uOKTcf65JME

문제가 무엇인지 잃어 버렸습니다 ...

스크린 샷 1
스크린 샷

스크린 샷 2 여기에 이미지 설명을 입력하십시오


3
안녕하세요, 당신은이 게시물에서 FB client_id를 난독 처리하고 싶을 수도 있습니다
a.benain

@ dangel이 문제를 어떻게 해결 했습니까 ?? 동일한 문제가 있지만 해결할 수 없습니다.
Ghimire

@Ghimire, 내 상황에서 URL을 변경했으며 클라이언트 \ 비밀을 업데이트하지 않았습니다. 아래 솔루션을 읽은 결과 실제로 동일한 오류가 발생하는 여러 가지 다른 이유가있을 수 있습니다.
dangel

@dangel 이것을 확인하십시오. stackoverflow.com/questions/46626914/…
Ghimire

답변:


82

Facebook에서 앱을 만들 때 잘못된 세부 정보를 입력 한 경우 일반적으로 발생합니다. 아니면 기존 앱의 URL을 변경 했습니까?

이 페이지에서 APP의 설정을 다시 확인할 수 있습니까?

https://developers.facebook.com/apps

  1. 올바른 앱을 선택하고 편집 버튼을 클릭하십시오.

  2. URL 및 경로가 올바르게 입력되었고 Ultimate Facebook 플러그인을 설치 한 사이트를 가리키는 지 확인하십시오.


3
난 그냥 지금 무슨 일이 있었는지 정확히 "기존 응용 프로그램의 URL의 변경"에 대해 말한 것을보고, 나는 그것이 새로운 클라이언트 \ 비밀 ID가 생성되는 원인이 추측
DANGEL

안녕, 나는 또한 내 응용 프로그램에서 fb oauth를 구현하려고합니다. fb 앱에 대한 모든 세부 정보를 제공했습니다. 그러나 콜백 리디렉션 중에 다음 오류가 나타납니다. InternalOAuthError : Strategy.OAuth2Strategy._createOAuthError (D : \ node_tutorials \ fb \ node_modules \ passport-oauth2 \ lib \ strategy.js : 370 : 17)에서 D : \ node_tutorials \ fb \ node_modules \ passport-oauth2에서 액세스 토큰을 가져 오지 못했습니다. \ lib \ strategy.js : 166 : 45 D : \ node_tutorials \ fb \ node_modules \ oauth \ lib \ oauth2.js : 177 : 18
Anand

시도해야 할 또 다른 것은 콜백을 https에서 http로 전환 해보십시오. 여기에는 getLoginUrl ()을 호출하는 코드와 앱 설정에서 콜백 URL을 변경하는 것이 포함됩니다. HTTPS를 사용하는 사이트에도 불구하고 어떤 이유로 콜백이 HTTPS에서 작동하지 않았습니다.
Josh1billion

같은 문제가 있지만 페이지를 로컬로 열 때; easyphp 설치가 구성되는 방식으로 127.0.0.1:8000 을 승인 된 주소에 추가 했지만 여전히 작동하지 않습니다. 온라인으로 FB 스크립트 만 테스트 할 수 있습니까?!?
jumpjack

어떤 버튼입니까?
Alexander Mills

210

누군가가 이것을 발견 하고이 설정을 찾고있는 경우

당신은해야

  1. 왼쪽에서 "+ Add Product (제품 추가)"를 클릭하고 "Facebook Login (Facebook 로그인)"을 선택합니다 (맨 위에 표시).
  2. 왼쪽에있는 새로운 설정을 확인하십시오
  3. 이제 해당 "제품 설정"에 이러한 OAuth 설정이 있습니다.

여기에 이미지 설명을 입력하십시오

추가 정보 : 만들기 확실히처럼 콜백 URL을 추가 할 http://localhost:3000받는 Valid OAuth redirect URIs페이스 북 로그인의 설정 페이지에서 필드


22
이것은 오류 메시지가 나타내는 것이 아닙니다. 유효한 OAuth 경로 재 지정 URI 에 관한 특정 오류 메시지가 있는데 여기서 발생하지 않습니다. 이 메시지는 설정»기본»앱 도메인을 명확하게 나타냅니다. 그러나 문제는 올바른 도메인이 채워져도 오류 메시지가 계속 표시된다는 것입니다.
fritzmg

@HakamFostok 도시 사전은 제쳐두고, 수학은 특히 코딩 세계에서 LHS / RHS en.wikipedia.org/wiki/Sides_of_an_equation 의 의미에 대해 높은 순서로 지배 합니다.
Craig Lambie

9
이것은 나를 위해 그것을 고쳤다. 도메인을 올바르게 채웠지만 리디렉션 URL을 추가하지 않았습니다. 리디렉션 URL을 추가하면 문제가 해결되었습니다. FB가이 문제에 대해 잘못된 오류 메시지를 보내는 순간에 보입니다.
Richard Garside

로컬에서 일하고 있으며 내 URL 127.0.0.1/CM/public입니다. 유효한 OAuth 리디렉션 URI는 무엇입니까?
Youssef Boudaya

1
이것은 api v2.7에서 나를 위해 일했으며 @RichardGarside의 의견은 정확합니다. 값을 설정하지 않았 Valid OAuth Redirect URIs으며이 필드 값을 추가하면의 업데이트와 관련된 잘못된 FB 오류 메시지가 해결되었습니다 App Domains.
johnsampson

60

나는 같은 문제가 있었다. getAuthToken 함수 호출에 대한 인수로 OAuth 리디렉션 URI를 추가하여 문제를 해결했습니다.

$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")

해당 함수에 인수가 전송되지 않으면 SDK는 자체적으로 리디렉션 URI를 생성하지만 작동하지만 작동하지 않습니다.

이것이 누군가를 돕기를 바랍니다.


2
이것은 내 웹 사이트를 http에서 https로 옮긴 후에 작동시킬 수있는 유일한 방법입니다. Facebook Api 설정에서 모든 도메인을 변경 한 후에도 작동하지 않습니다.
Chris

6
이것이 정답입니다. 문제를 해결하십시오!
tormuto

필자의 경우 URL 자체에는 빈 매개 변수가 포함되어서는 안됩니다. "www.example.com?param"을 getAccessToken에 제공 할 때 FB는 항상 getLoginUrl에 제공 한 URI와 일치하지 않는다고 말했습니다. 절대적으로 동일하다고 확신합니다. "www.example.com"을 사용해도 이러한 오류가 발생하지 않습니다.
Chlind

2
감사합니다 . 이 모든 오류가 추상적 / 모호하기 때문에 페이스 북에서 정말 나쁜 너무보고 위치를 몰라 -이 해결
digitalzoomstudio

이것은 질문에 대한 답변입니다.
John

35

앱이 공개되어 있는지 확인하십시오. + 제품 추가를 클릭하십시오. 이제 제품으로 이동하십시오 => Facebook 로그인 이제 다음을 수행하십시오.

유효한 OAuth 리디렉션 URI : example.com/

콜백 URL 승인 해제 : https://example.com/facebookapp http://unicodeitsolutions.com/


1
무엇이 Deauthorize Callback URL : https://example.com/facebookapp필요합니까? 그것없이 작동합니까?
Jordan

콜백 URL 승인 취소는 필수가 아닙니다. 사용자가 앱을 인증 해제하면 페이스 북이 URL을 통해 핑 (Ping)합니다.
Sanjoy Kanrar

20

이 문제를 해결하기 위해 내가 한 일은 다음과 같습니다. 여기에 이미지 설명을 입력하십시오

원래:

1) " 내장 브라우저 OAuth 로그인 " 활성화

2) " 리디렉션 URI에 엄격한 모드 사용"을 비활성화 하고 내가 한 것처럼 리다이렉트 URI를 입력하십시오.

3) 나머지 옵션은 모두 그대로 둡니다.

4) 변경 사항을 저장하십시오.

5) 즐기십시오 :)


이것은 나를 위해 해결했습니다. 튜토리얼을 수행하고 로컬에서만 테스트하기 때문에 앱을 공개하고 싶지 않았습니다. @bangbang 감사합니다
PHBeagle

1
나를 위해 리디렉션 URI에 엄격한 모드 사용을 비활성화 할 수 없습니다.
fdehanne

8

나는 같은 문제가 있었고 잘못된 client_id / Facebook App ID에서 나왔습니다.

Facebook 앱을 "public"또는 "online"으로 전환 했습니까? 그렇게하면 Facebook은 새로운 앱 ID로 새로운 앱을 만듭니다.

URL의 "client_id"매개 변수 값을 Facebook 대시 보드의 값과 비교할 수 있습니다.


localhost에서 photovote.dev로 변경하는 것과 일치하도록 도메인과 사이트 URL을 변경하기 만하면됩니다. 내 앱과 Facebook 설정에서 리디렉션 URI를 업데이트했습니다. 새 응용 프로그램을 만들려고합니다
dangel

흠, 나는 당신이 더 이상 일치하지 않기 때문에 새로운 ID가 생성되도록하는 앱 설정에서 무언가를 변경 한 것 같습니다. 사이트 URL을 업데이트했을 때? 그것이 다시 작동하는지와 상관없이
dangel

이것은 나를 위해 일했습니다. 프로덕션에서 이전 앱 ID를 사용하고있었습니다.
Marcus W

8

수정 방법 : 유효한 OAuth 리디렉션 URI 텍스트 상자로 이동 하여 도메인뿐만 아니라 정확한 URL을 설정했습니다. .

전에: https://my-website.com

후: https://my-website.com/facebookoauth/facebooklogin

(경우에 따라 URL이 다를 수 있습니다. 브라우저의 주소 표시 줄에서 확인하십시오).

이는 리디렉션 URI에 엄격한 모드 사용 (예 : 위치에 잠겨 있음) 설정으로 인해 발생했습니다.


정말 감사합니다. 이것은 내 문제를 해결했다
vickris

7

URL을로드 할 수 없음 :이 URL의 도메인은 앱의 도메인에 포함되지 않습니다. 이 URL을로드하려면 앱의 모든 도메인 및 하위 도메인을 앱 설정의 앱 도메인 필드에 추가하십시오.

나는 오늘이 문제를 겪었고 Facebook 설명서와 SDK는 다른 개발자들에게 무례하고 오만하다는 것을 알았습니다.

많은 정보가없는 두 개의 다른 위치 ( "웹"플랫폼을 추가하는 경우 3)에 "앱 도메인"을 두는 것 외에도 앱 제품 / 페이스 북 로그인 / 설정 으로 이동하여 아래에 리디렉션 URL을 추가해야합니다. 유효한 OAuth 리디렉션 URI

오류가 oauth 설정에 대해 NOTHING이라고 표시합니다.


1
예,이 추가 단계도 수행해야했습니다. 나는 당신의 견해를 문서에 공유합니다!
Magnus Smith

6

2017-10 기준

내 문제를 해결 한 솔루션.

현재 FB는 이러한 놀라움을 안겨줍니다.

... 앱의 클라이언트 OAuth 설정. 클라이언트 및 웹 OAuth 로그인이 켜져 있는지 확인하십시오 ...

여기에 이미지 설명을 입력하십시오

조정할 설정은 https://developers.facebook.com/apps/[your_app_itentifier]/fb-login/에 있습니다.

후행 슬래시가 중요합니다. 앱 코드와 FB 관리자 설정에서 일치해야합니다. 따라서 이것은 코드 어딘가에 구성입니다 (아래는 dev 앱의 도메인 이름을 얻는 방법을 참조하십시오).

{
    callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}

그리고 여기

여기에 이미지 설명을 입력하십시오

로컬 Windows 시스템에서 앱의 도메인 이름을 얻으려면 host파일을 편집 하십시오. 커스텀 이름은 모든 것을 없애기 위해 좋습니다.localhost:8080,, 0.0.0.0:30303127.0.0.0:8000 . FB와 같은 일부 타사 서비스는 때때로 127.0.0.0이름 을 사용하지 못하게하기 때문 입니다.

Windows 10에서 hosts 파일의 경우 다음과 같습니다.

C:\Windows\System32\drivers\etc\hosts

초기 파일 백업, 다른 이름으로 사본 만들기 (기본 Windows CMD에서는 작동하지 않습니다. Git , 많은 Unix 명령이 있음)

$ cp hosts hosts.bak

이것을 추가하십시오 hosts

127.0.0.1  myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1  www.myotherapp.io # In a browser http://www.myotherapp.io:2020

:3000예를 들어, 포트 부분 설정 NGINX를 제거하기 위해 .


이것에 감사합니다, 후행 슬래시가 필요한지 몰랐습니다!
Andy Holmes

2018 년 5 월 11 일에 앱의 콜백 URL과 페이스 북의 유효한 oauth 리디렉션 URI가 동일해야합니다. 그래도 https는 필수입니다.
유다 프라 위라

후행 슬래시는 내 시간을 절약합니다. 감사!
효진


6

대부분 올바른 OAuth 리디렉션 URL을 삽입하지 않아 발생 합니다. FB 대시 보드의 제품 섹션에 을 합니다. 다음 단계를 따르십시오.

01. 아래 그림으로 앱의 기본 설정이 올바른지 확인하십시오.

여기에 이미지 설명을 입력하십시오

02. 제품 추가 여부 확인

그렇지 않으면 아래에 표시된대로 + 사인을 클릭하여 제품에 로그인을 쉽게 추가 할 수 있습니다.

예인 경우 제품 설정 내부로 들어갔습니다. 여기에 이미지 설명을 입력하십시오

03. 유효한 OAuth 리디렉션 URL을 제공했는지 확인

그것은 로그인 후해야 할 일을 의미합니다 .URL을 콜백하는 것 외에는 아닙니다. 아래 그림에서 몇 개의 리디렉션 URL을 추가했습니다. 여기에 이미지 설명을 입력하십시오

  1. 문제가 더 있습니다. 내 비디오보기-> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s

2 살짜리 질문 및 외부 사이트에 대한 링크가 답변의 주요 내용이되어서는 안됩니다.
zzxyz

6

Facebook은 최근 ' 리디렉션 URI에 엄격한 모드 사용 '에 대한 토글 버튼을 비활성화했습니다 . 따라서 로그인 버튼을 눌렀을 때 호출되는 정확한 URI를 추가해야합니다. 제 경우에는 스크린 샷과 같습니다. 그것은 나를 위해 문제를 해결했습니다 :)

여기에 이미지 설명을 입력하십시오



5

필자의 경우 임베디드 브라우저 OAuth 로그인 만 활성화하면됩니다.

여기에 이미지 설명을 입력하십시오


브라우저 기반 로그인도 사용하고 있었으므로 동일한 문제가 발생했습니다. 또한 정확한 리디렉션 URI를 입력 해야하는 입력 상자가 아래에 있습니다.
absin

4

내가 사용하고있는 SDK 버전을 업데이트하기 전까지는 실제로 효과가 없었습니다. 나는 5.0으로 시작했다. 5.4.0조차도 작동하지 않습니다. 5.6.2로 업데이트했을 때 관련 변경 로그에 아무 것도 없더라도 완벽하게 작동했습니다!


1
나는이 문제를 정확히 가지고 있었다! "5.4.2"를 사용하고 "5.6.2"로 업그레이드
John Smith

2

이 옵션은 포털에서 활성화해야합니다.

여기에 이미지 설명을 입력하십시오


감사. 나는 같은 문제가 있었고 이것은 내가 놓친 스위치였습니다.
timeon

감사! 이것은 또한 나를 위해 일했습니다 (저는 Google Firebase를 사용했습니다. 또한 "유효한 OAuth 리디렉션 URI"를 Google이 내 프로젝트에 제공 한 OAuth 리디렉션 URI로 설정해야했습니다)
mwang25

2

이것이 다른 사람에게 도움이되는 경우, "유효한 OAuth 리디렉션 URI"가 필수가 된 오래된 사이트에서이 문제가 발생하기 시작했습니다. 이 사이트는 여전히 V4 PHP SDK를 사용하고 있었고 V5 SDK로 업그레이드하여 문제가 해결되었습니다.


1

앱 도메인 섹션에서 앱 도메인을 작성하고 있지만 로그인 도메인 (예 : 사용자에게 로그인을 요청하는 html 페이지 이름)을 추가해야합니다. 내 경우에는 localhost에서 테스트하고 로그인 경로는 localhost / login이었습니다 .App 도메인 섹션 에 http://localhost.com 만 넣으면 이 오류가 발생합니다. 그러나 http : //localhost/login.com 을 추가 한 후 오류가 수정되었습니다. 또한 OAuth 리디렉션 경로에 대한 옵션이없는 최신 버전의 SDK에서 앱 설정이 변경되었습니다. OAuth 토큰을 얻은 후 서버 측에서 직접 리디렉션 경로를 할당해야합니다.


1

이것은 나를 위해 일했다 :

이해해야 할 주요 사항은 다음과 같습니다. Facebook은 항상 " WWW "도메인을 확인 합니다. www.your_domain.dev 를 확인하십시오 가 브라우저에서 먼저 작동 .

로컬 서버에 여러 개의 가상 호스트가있는 경우 다른 가상 호스트가 " www.your_domain.dev "를 대체 할 수 있습니다 . 확인해주세요. 아파치는 도메인의 첫 번째 정의 (또는 포트, 또는 이와 같은 용어)를 선택할 것이다. 나는 이것에 대해 전문가는 아니지만 실수로 배운 것이다. 이 가상 호스트 재정의에 대한 빠른 수정은 " www.your_domain.dev 가상 호스트 정의를"httpd-vhosts.conf "파일의 맨 위에 두는 것입니다.

" /apache/conf/https-vhosts.conf "로 이동 하여 파일 맨 위에 놓으십시오.

<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>

###### FOR SSL #####
<VirtualHost *:443>
    DocumentRoot "C:/your_app_folder_path/"
    ServerName your_domain.dev
    ServerAlias www.your_domain.dev
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/your_app_folder_path/">
        Options All
        AllowOverride All
        Require all granted 
    </Directory>
</VirtualHost>

다음 : Windows 시스템을 사용하는 경우 다음 두 줄을 추가하여 "C : \ Windows \ System32 \ drivers \ etc"에서 "hosts"파일을 편집하십시오.

127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev

다음 : Apache 서버를 다시 시작하면 모든 것이 작동합니다.


이것이 당신에게 도움이되고 시간을 절약하기를 바랍니다. 나는 거의 하루 종일 웹 검색을 낭비하고 머리카락을 뽑아 내고 이것을 찾을 때까지 도움이되는 것을 찾을 수 없었습니다.


1

동일한 문제가 발생했습니다 ..... 문제는 PHP SDK 5.6.2 버전이며 수정 프로그램에서 다음 파일을 편집 중입니다.

facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php

이 줄을 바꾸다

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);


0

프로덕션 환경에서 이와 동일한 Facebook 오류가 발생했습니다. 그 이유는 Facebook (Local, Production)에 2 개의 앱을 등록했지만 로컬 앱 ID를 소스 코드로 하드 ​​코딩하고 배포하기 전에 프로덕션 앱 ID로 전환하는 것을 잊었습니다.

모범 사례에 따르면 앱 ID를 소스 코드에 하드 코딩해서는 안되지만 그렇게하면 실수로했던 것처럼 다양한 Facebook 앱 ID가 일치하지 않아야합니다.


0

내 로컬 서버를 사용합니다.

다음 http://localhost/my-site에 URL로 간단히 추가하십시오 .

https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/

나를 위해 일했다.


0

FB가 로그인 절차를 강화함에 따라 문제와 답변이 계속 변경됩니다. 오늘이 공포 메시지가 나왔습니다. "이 URL의 도메인은 앱 도메인에 포함되어 있지 않습니다.이 URL을로드하려면 앱의 모든 도메인과 하위 도메인을 앱 설정의 앱 도메인 필드에 추가하십시오."

이에 대한 답은 FB가 전체 리디렉션 URI를 원한다는 것입니다. 그래서 예전 나, 단지 https://www.example.com을 지금 원하는 https://www.example.com/auth/facebook/callback . "유효한 OAuth 리디렉션 URI"필드 (개발자 / Facebook 로그인-> 설정)로 이동해야합니다.



0

첫 번째 단계 : 모든 https://example.in 또는 ssl 인증서 URL을 사용하고 http://example.in을 사용하지 마십시오

두 번째 단계 : faceboook 응용 프로그램 설정-> 기본 설정-> 도메인 또는 하위 도메인 추가

세 번째 단계 : faceboook 응용 프로그램 로그인 설정-> 유효한 OAuth 리디렉션 URI-> 로그인 후 모든 리디렉션 URL 추가

네 번째 단계 : faceboook 응용 프로그램 설정-> 고급 설정-> 도메인 관리자-> 도메인 이름 추가

이 모든 단계를 수행 한 다음 설정에 응용 프로그램 ID, 응용 프로그램 버전, 응용 프로그램 암호를 사용하십시오.


0

Magento 2 Social Login 확장 프로그램의 경우 패널에서 유효한 OAuth 리디렉션 URI를 복사하고 developers.facebook.com의 클라이언트 OAuth 설정 페이지에서 유효한 OAuth 리디렉션 URI 필드에 대한 링크를 추가해야합니다.



-1

대부분의 답변은 URL을 앱의 도메인에 추가하는 것과 관련이 있지만 회사에서 일할 때는 이러한 액세스 권한이 없습니다. 단순히 가상 호스트를 만들고 호스트 항목을 작성하여이를 우회 할 수 있습니다.


이것을 호스트 파일 (/ etc / hosts)에 추가하십시오 127.0.0.1 www.your_domain.com

가상 호스트를 만듭니다. 아파치 가상 호스트에 사용했습니다.

ServerAdmin webmaster @ localhost ServerName www.your_domain.com

    ProxyPass / http://localhost:5006/
    RewriteMap  lc int:tolower
    LogLevel debug

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