Facebook OAuth“ โดเมนของ URL นี้ไม่รวมอยู่ในโดเมนของแอพ”


248

ก่อนอื่นให้ฉันบอกว่าฉันเคยค้นหาคำตอบสำหรับคำถามนี้สักพัก ...

ฉันกำลังพยายามตั้งค่า Facebook OAuth ให้ทำงานกับแอปพลิเคชันของฉันซึ่งได้รับการพัฒนาในเครื่องของฉัน ทุกอย่างทำงานได้สมบูรณ์แบบด้วยการอนุญาต Facebook จนถึงฉันเปลี่ยนจากการใช้localhostเป็นชื่อโดเมนอื่น (ยังอยู่ในเครื่องของฉัน) ตอนนี้ฉันได้รับข้อผิดพลาดต่อไปนี้

ไม่สามารถโหลด URL: โดเมนของ URL นี้ไม่รวมอยู่ในโดเมนของแอป เพื่อให้สามารถโหลด URL นี้เพิ่มโดเมนและโดเมนย่อยทั้งหมดของแอปของคุณไปยังฟิลด์ App Domains ในการตั้งค่าแอพของคุณ

ไฟล์ hosts ของฉันมี127.0.0.1 photovote.dev (ทำงานได้สมบูรณ์)

การเปลี่ยนเส้นทางของฉันในแอพของฉัน (ใช้ Socialite) คือ http://photovote.dev/auth/facebook/callback

ในการตั้งค่า Facebook App ของฉัน ...

  • โดเมนแอพของฉันคือ photovote.dev
  • URL เว็บไซต์ของฉันคือ http://photovote.dev/
  • URIs การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องของฉันคือ 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=0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

ฉันกำลังสูญเสียสิ่งที่เป็นปัญหา ...

สกรีนช็อต 1
สกรีนช็อต

สกรีนช็อต 2 ป้อนคำอธิบายรูปภาพที่นี่


3
สวัสดี dangel คุณอาจต้องการทำให้งงงวย FB client_id ของคุณจากโพสต์นี้
a.benain

@dangel คุณแก้ไขปัญหานี้ได้อย่างไร? ฉันมีปัญหาเดียวกัน แต่ไม่สามารถแก้ไขได้
Ghimire

@ Ghimire ในสถานการณ์ของฉันฉันได้เปลี่ยน URL และไม่ได้อัปเดตไคลเอนต์ \ secret จากการอ่านวิธีการแก้ปัญหาด้านล่างดูเหมือนว่าอาจมีสาเหตุที่แตกต่างหลากหลายที่ทำให้เกิดข้อผิดพลาดเดียวกัน
dangel

@dangel ตรวจสอบสิ่งนี้ stackoverflow.com/questions/46626914/…
Ghimire

คำตอบ:


82

สิ่งนี้มักจะเกิดขึ้นหากคุณป้อนรายละเอียดที่ไม่ถูกต้องเมื่อคุณสร้างแอพใน Facebook หรือคุณเปลี่ยน URL ของแอพที่มีอยู่

คุณช่วยกรุณาตรวจสอบการตั้งค่าแอพของคุณอีกครั้งในหน้านี้ได้ไหม?

https://developers.facebook.com/apps

  1. เลือกแอพที่ถูกต้องและคลิกที่ปุ่มแก้ไข

  2. ตรวจสอบว่ามีการป้อน URL & เส้นทางอย่างถูกต้องและชี้ไปยังไซต์ที่คุณติดตั้งปลั๊กอิน Facebook Ultimate


3
ตอนนี้ฉันเพิ่งเห็นสิ่งที่คุณพูดเกี่ยวกับ "คุณเปลี่ยน URL ของแอพที่มีอยู่" นั่นเป็นสิ่งที่เกิดขึ้นจริงและฉันคิดว่ามันทำให้เกิดการสร้างรหัสลูกค้า \ secret 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_mules \ lib \ strategy.js: 166: 45 ที่ D: \ node_tutorials \ fb \ node_modules \ oauth \ lib \ oauth2.js: 177: 18
อานันท์

อีกสิ่งหนึ่งที่จะลองใช้กับฉันได้: ลองเปลี่ยนการโทรกลับจาก https เป็น http ที่เกี่ยวข้องกับการเปลี่ยนทั้งรหัสที่เรียกใช้ getLoginUrl () เช่นเดียวกับการเปลี่ยน URL ที่เรียกกลับในการตั้งค่าแอพ การโทรกลับไม่เคยทำงานกับ HTTPS ให้ฉันด้วยเหตุผลบางอย่างแม้จะมีไซต์ที่ใช้ HTTPS
Josh1billion

ฉันมีปัญหาเดียวกัน แต่เมื่อเปิดหน้าเว็บในเครื่อง ฉันเพิ่ม127.0.0.1:8000ไปยังที่อยู่ที่ได้รับอนุญาตเนื่องจากเป็นวิธีการติดตั้ง easyphp ของฉัน แต่ก็ยังไม่ทำงาน ฉันจะทดสอบเฉพาะสคริปต์ FB ออนไลน์ได้หรือไม่?
jumpjack

"คลิกที่ปุ่มแก้ไข" อืมมปุ่มไหน?
Alexander Mills

210

ในกรณีที่มีคนเจอและกำลังมองหาการตั้งค่าเหล่านี้ (เหมือนฉัน)

คุณต้อง

  1. ทางด้านซ้ายมือให้คลิก "+ เพิ่มผลิตภัณฑ์" และเลือก "เข้าสู่ระบบ Facebook" (นั่นคือที่ด้านบนสำหรับฉัน)
  2. ดูการตั้งค่าใหม่ที่มีอยู่ทางด้านซ้ายมือ
  3. ตอนนี้คุณจะมีการตั้งค่า OAuth เหล่านี้ใน "การตั้งค่าผลิตภัณฑ์"

ป้อนคำอธิบายรูปภาพที่นี่

ข้อมูลเพิ่มเติม:ตรวจสอบให้แน่ใจว่าได้เพิ่ม URL การโทรกลับhttp://localhost:3000ลงในValid OAuth redirect URIsฟิลด์บนหน้าการตั้งค่าของการเข้าสู่ระบบ Facebook


22
นี่ไม่ใช่สิ่งที่เกิดข้อผิดพลาดหมายถึง มีข้อความแสดงข้อผิดพลาดเฉพาะเกี่ยวกับการเปลี่ยนเส้นทาง UAIs ที่ถูกต้องซึ่งไม่ใช่สิ่งที่เกิดขึ้นที่นี่ ข้อความนี้อ้างถึงการตั้งค่า»พื้นฐาน»โดเมนแอปอย่างชัดเจน อย่างไรก็ตามปัญหาคือแม้ว่าจะมีการกรอกข้อมูลโดเมนที่ถูกต้องข้อความแสดงข้อผิดพลาดจะยังคงปรากฏขึ้น
fritzmg

@HakamFostok Urban Dictionary กันคณิตศาสตร์ขึ้นครองลำดับที่สูงขึ้นสำหรับความหมายของ LHS / RHS en.wikipedia.org/wiki/Sides_of_an_equationโดยเฉพาะอย่างยิ่งในโลกของการเข้ารหัส
Craig Lambie

9
สิ่งนี้แก้ไขได้สำหรับฉัน แม้ว่าฉันจะกรอกโดเมนอย่างถูกต้อง แต่ฉันไม่ได้เพิ่ม URL เปลี่ยนเส้นทาง การเพิ่ม URL เปลี่ยนเส้นทางแก้ไขปัญหาได้ ดูเหมือนว่าขณะนี้ FB กำลังส่งข้อความแสดงข้อผิดพลาดที่ไม่ถูกต้องสำหรับปัญหานี้
ริชาร์ดการ์ไซด์

ฉันทำงานในพื้นที่และนี่คือ 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

ผมมีปัญหาเหมือนกัน. ฉันแก้ไขได้โดยการเพิ่ม OAuth เปลี่ยนเส้นทาง URI เป็นอาร์กิวเมนต์ไปยังการเรียกใช้ฟังก์ชัน getAccessToken:

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

หากไม่มีการส่งอาร์กิวเมนต์ไปยังฟังก์ชันนั้น SDK จะสร้าง URI การเปลี่ยนเส้นทางด้วยตัวเองซึ่งควรใช้งานได้ แต่ในกรณีของฉันมันจะไม่เกิดขึ้น

หวังว่านี่จะช่วยใครซักคน


2
นี่เป็นวิธีเดียวที่ฉันสามารถใช้งานได้หลังจากย้ายเว็บไซต์จาก http ไปยัง https แม้หลังจากเปลี่ยนโดเมนทั้งหมดในการตั้งค่า Facebook Api แต่มันก็ไม่ทำงาน
Chris

6
นี่ควรเป็นคำตอบที่ยอมรับได้ แก้ปัญหา!
tormuto

ในกรณีของฉัน URL นั้นไม่ควรมีพารามิเตอร์ที่ว่างเปล่า เมื่อฉันมอบ "www.example.com?param" ให้กับ getAccessToken นั้น FB มักจะบอกว่ามันไม่ตรงกับ URI ที่ฉันให้กับ getLoginUrl ซึ่งฉันแน่ใจว่าเหมือนกันทุกประการ การใช้ "www.example.com" จะไม่เพิ่มข้อผิดพลาดดังกล่าว
Chlind

2
ขอบคุณ . แก้ไขโดยนี้ - แย่มากจาก facebook เพราะข้อผิดพลาดเหล่านี้เป็นนามธรรม / คลุมเครือและคุณไม่รู้ว่าอยู่ที่ไหนด้วย
digitalzoomstudio

คำถามนี้ตอบคำถาม
John

35

ตรวจสอบให้แน่ใจว่าแอปของคุณเป็นแบบสาธารณะ คลิกที่ + เพิ่มผลิตภัณฑ์ตอนนี้ไปที่ผลิตภัณฑ์ => เข้าสู่ระบบ Facebook ตอนนี้ทำต่อไปนี้:

URIs เปลี่ยนเส้นทาง OAuth ที่ถูกต้อง: example.com/

ยกเลิกการอนุญาต URL การโทรกลับ: https://example.com/facebookapp http://unicodeitsolutions.com/


1
สิ่งที่Deauthorize Callback URL : https://example.com/facebookappจำเป็นสำหรับการ? มันจะทำงานได้ไหมถ้าไม่มี
จอร์แดน

ยกเลิกการอนุญาตให้ใช้ URL การโทรกลับไม่ได้รับอนุญาต ... เมื่อผู้ใช้จะยกเลิกการอนุญาตแอพของเรา Facebook จะ ping เราตาม URL
Sanjoy Kanrar

20

นี่คือสิ่งที่ฉันทำเพื่อแก้ไขปัญหานี้: ป้อนคำอธิบายรูปภาพที่นี่

โดยทั่วไป:

1) เปิดใช้งาน " ลงชื่อเข้าใช้ OAuth ของเบราว์เซอร์ในตัว "

2) ปิดการใช้งาน " ใช้โหมดเข้มงวดสำหรับการเปลี่ยนเส้นทาง URI " และป้อน URI การเปลี่ยนเส้นทางเช่นเดียวกับที่ฉันทำ

3) ปล่อยให้ตัวเลือกที่เหลือทั้งหมดเหมือนเดิม

4) บันทึกการเปลี่ยนแปลงของคุณ

5) สนุก :)


วิธีนี้แก้ไขได้สำหรับฉัน ฉันไม่ต้องการให้แอปของฉันเปิดเผยต่อสาธารณะเพราะฉันเพิ่งทำแบบฝึกหัดและทดสอบเฉพาะที่ ขอบคุณ @bangbang
PHBeagle

1
สำหรับฉันใช้โหมดเข้มงวดสำหรับการเปลี่ยนเส้นทาง URIsไม่สามารถปิดการใช้งาน
fdehanne

8

ฉันมีปัญหาเดียวกันและมันมาจากรหัสแอป client_id / Facebook ที่ไม่ถูกต้อง

คุณเปลี่ยนแอพ Facebook เป็น "สาธารณะ" หรือ "ออนไลน์หรือไม่เมื่อคุณทำเช่นนั้น Facebook จะสร้างแอปใหม่ด้วย ID แอปใหม่

คุณสามารถเปรียบเทียบค่าพารามิเตอร์ "client_id" ใน url กับค่าในแดชบอร์ด Facebook ของคุณ


ทั้งหมดที่ฉันทำคือเปลี่ยนโดเมนและ URL ไซต์เพื่อให้สอดคล้องกับการเปลี่ยนจาก localhost เป็น photovote.dev ฉันอัปเดต URI การเปลี่ยนเส้นทางบนแอปของฉันและในการตั้งค่า Facebook ฉันอาจลองสร้างแอปใหม่
dangel

อืมฉันคิดว่าฉันเปลี่ยนบางอย่างในการตั้งค่าแอพที่ทำให้ ID ใหม่ถูกสร้างขึ้นเพราะคุณพูดถูกมันไม่ตรงกันอีกต่อไป บางทีเมื่อฉันอัปเดต URL เว็บไซต์ โดยไม่คำนึงถึงว่ามันจะทำงานได้อีกครั้ง
dangel

สิ่งนี้ใช้ได้สำหรับฉัน ใช้รหัสแอปเก่าในการผลิต
Marcus W

8

วิธีที่ฉันแก้ไข: ฉันไปที่กล่องข้อความ OAuth Redirect URIs ที่ถูกต้องและตั้งค่าURL ที่แน่นอนไม่ใช่เฉพาะโดเมน :

ก่อน: https://my-website.com

หลังจาก: https://my-website.com/facebookoauth/facebooklogin

(URL อาจแตกต่างกันในกรณีของคุณตรวจสอบในแถบที่อยู่ของเบราว์เซอร์)

สิ่งนี้เกิดจากการตั้งค่าใช้โหมดเข้มงวดสำหรับ Redirect URIs ซึ่งถูกล็อคในตำแหน่งใช่


ขอบคุณมากสำหรับสิ่งนี้ สิ่งนี้แก้ไขปัญหาของฉันได้
vickris

7

ไม่สามารถโหลด URL: โดเมนของ URL นี้ไม่รวมอยู่ในโดเมนของแอป เพื่อให้สามารถโหลด URL นี้เพิ่มโดเมนและโดเมนย่อยทั้งหมดของแอปของคุณไปยังฟิลด์ App Domains ในการตั้งค่าแอพของคุณ

ฉันมีปัญหานี้ในวันนี้ฉันพบเอกสาร Facebook และ SDK ไม่สุภาพและไม่สุภาพต่อผู้พัฒนารายอื่น

นอกเหนือจากการมี "โดเมนแอพ" ในที่ต่างกันสองแห่งโดยไม่มีข้อมูลมาก (3 ถ้าคุณเพิ่มแพลตฟอร์ม "เว็บ") คุณยังต้องไปที่แอปผลิตภัณฑ์ / การเข้าสู่ระบบ / การตั้งค่า Facebookและเพิ่ม URL เปลี่ยนเส้นทางของคุณภายใต้URIs

ข้อผิดพลาดบอกว่าไม่มีอะไรเกี่ยวกับการตั้งค่า oauth


1
ใช่ฉันต้องทำขั้นตอนพิเศษนี้ด้วย ฉันแบ่งปันมุมมองของคุณในเอกสาร!
แมกนัสสมิ ธ

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:30303, 127.0.0.0:8000, อื่น ๆ เพราะบริการของบุคคลที่สามบางอย่างเช่น FB บางครั้งล้มเหลวที่จะให้คุณใช้127.0.0.0ชื่อ

ในhostsไฟล์Windows 10 อยู่ที่นี่:

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

สำรองไฟล์เริ่มต้นสร้างสำเนาด้วยชื่ออื่น (ใช้งานไม่ได้กับ Windows CMD ดั้งเดิมฉันใช้Git สำหรับ Windowsมีคำสั่ง 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

ในวันที่ 11 พฤษภาคม 2018 URL การโทรกลับในแอปและการเปลี่ยนเส้นทาง URIs ที่ถูกต้องที่ facebook จะต้องเหมือนกัน และ https จะต้องเป็นเช่นนั้น
Yuda Prawira

สแลชต่อท้ายช่วยประหยัดเวลาของฉัน ขอบคุณ!
ฮโยจิ


6

เวลาส่วนใหญ่เกิดขึ้นโดยไม่ใส่URL การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องในส่วนผลิตภัณฑ์ของแดชบอร์ด FB ฉันขอแนะนำให้ทำตามขั้นตอนการร้องของฉัน

01. ตรวจสอบการตั้งค่าพื้นฐานของแอพด้วยภาพตะโกนกับคุณ

ป้อนคำอธิบายรูปภาพที่นี่

02. ตรวจสอบว่าคุณมีผลิตภัณฑ์เพิ่มหรือไม่

หากไม่ใช่คุณสามารถเพิ่มผลิตภัณฑ์เข้าสู่ระบบได้อย่างง่ายดายโดยคลิก + ไซน์ตามที่ปรากฏในซอลเบลโลว์

ถ้าใช่เพิ่งเข้าไปด้านในของการตั้งค่าผลิตภัณฑ์ ป้อนคำอธิบายรูปภาพที่นี่

03. การตรวจสอบว่าคุณมี URL การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องหรือไม่

มันง่ายหมายถึงสิ่งที่ควรหลังจากเข้าสู่ระบบมันไม่ได้เป็นอย่างอื่นนอกเหนือจากที่โทรกลับ URl คุณสามารถเห็นในภาพร้องของฉันฉันได้เพิ่ม URL เปลี่ยนเส้นทางหลาย ป้อนคำอธิบายรูปภาพที่นี่

  1. มีปัญหาใด ๆ เพิ่มเติมดูวิดีโอของฉัน -> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s

คำถามอายุ 2 ปีและการเชื่อมโยงไปยังเว็บไซต์ภายนอกไม่ควรเป็นเนื้อหาหลักของคำตอบ
zzxyz

6

เมื่อเร็ว ๆ นี้ Facebook ได้ปิดการใช้งานปุ่มสลับสำหรับ ' ใช้โหมดเข้มงวดสำหรับ Redirect URIs ' ดังนั้นคุณต้องเพิ่ม URI ที่ถูกต้องในสิ่งที่ถูกเรียกเมื่อคุณกดปุ่มเข้าสู่ระบบ สำหรับกรณีของฉันมันเป็นตามที่แสดงในภาพหน้าจอ มันแก้ไขปัญหาให้ฉัน :)

ป้อนคำอธิบายรูปภาพที่นี่


5

ผมมีปัญหาเหมือนกัน,

ฉันเพิ่งเพิ่มการเชื่อมโยงของที่อยู่ในท้องถิ่นของฉันhttp: //localhost/Facebook%20Login%20Test.htmlการSite URLในการตั้งค่าการสมัครของฉันhttps://developers.facebook.com/apps

ตอนนี้มันใช้งานได้ดี :) ฉันหวังว่านี่จะมีประโยชน์;)


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 การเปลี่ยนเส้นทาง URIs ที่ถูกต้อง" เป็น OAuth เปลี่ยนเส้นทาง URI ที่มอบให้ฉันโดย google สำหรับโครงการของฉัน)
mwang25

2

ในกรณีนี้จะช่วยให้คนอื่นสิ่งนี้เริ่มเกิดขึ้นกับฉันในเว็บไซต์เก่าเมื่อ "URIs Redirect URIs การเปลี่ยนเส้นทางที่ถูกต้อง" กลายเป็นข้อบังคับ ไซต์ยังคงใช้ V4 PHP SDK และปัญหาได้รับการแก้ไขสำหรับฉันโดยอัปเกรดเป็น V5 SDK


1

ในส่วนโดเมนแอปคุณกำลังเขียนโดเมนแอปของคุณ แต่คุณต้องเพิ่มโดเมนเข้าสู่ระบบของคุณเช่นชื่อของหน้า html ที่คุณขอให้ผู้ใช้เข้าสู่ระบบ ในกรณีของฉันฉันกำลังทดสอบบน localhost และเส้นทางการเข้าสู่ระบบคือ localhost / login ถ้าฉันใส่http://localhost.comในส่วนโดเมนของ App ฉันได้รับข้อผิดพลาดนี้ แต่หลังจากเพิ่มhttp: //localhost/login.comข้อผิดพลาดได้รับการแก้ไข และการตั้งค่าแอพมีการเปลี่ยนแปลงใน SDK เวอร์ชันใหม่กว่าซึ่งไม่มีตัวเลือกสำหรับเส้นทางการเปลี่ยนเส้นทางของ OAuth คุณต้องกำหนดเส้นทางการเปลี่ยนเส้นทางโดยตรงจากฝั่งเซิร์ฟเวอร์หลังจากรับโทเค็น OAuth สำเร็จ


1

สิ่งนี้ใช้ได้กับฉัน:

นี่คือสิ่งสำคัญที่ต้องเข้าใจ: Facebook จะตรวจสอบโดเมน " WWW " เสมอ ดังนั้นตรวจสอบให้แน่ใจว่าwww.your_domain.devทำงานบนเบราว์เซอร์ของคุณก่อน

เป็นไปได้ว่าหากคุณมีโฮสต์เสมือนหลายแห่งบนเซิร์ฟเวอร์ท้องถิ่นของคุณโฮสต์เสมือนอื่น ๆ จะแทนที่ " www.your_domain.dev " ดังนั้นโปรดตรวจสอบว่า Apache จะเลือกคำจำกัดความแรกของโดเมน (หรือพอร์ตหรือบางสิ่งในเงื่อนไขเหล่านี้ - ฉันไม่มีความเชี่ยวชาญในเรื่องนี้ แต่เรียนรู้จากความผิดพลาด) การแก้ไขอย่างรวดเร็วอย่างง่าย ๆ สำหรับโฮสต์เสมือนที่มีการแทนที่นั้นคือการใส่ " 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" โดยเพิ่มสองบรรทัด:

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 เดียวกันนี้เกิดขึ้นกับฉันในสภาพแวดล้อมการผลิต เหตุผลก็คือฉันมีแอพ 2 ตัวที่ลงทะเบียนกับ Facebook (Local, Production) แต่ฉัน hardcoded ID แอปท้องถิ่นลงในซอร์สโค้ดและลืมที่จะเปลี่ยนออกเป็น ID แอพการผลิตก่อนการปรับใช้

แนวทางปฏิบัติที่ดีที่สุดกำหนดว่าคุณไม่ควรใส่รหัสแอปลงในซอร์สโค้ด แต่ถ้าคุณทำอย่าแมปรหัสแอพ Facebook ต่าง ๆ อย่างที่ฉันทำผิดพลาด


0

ใช้เซิร์ฟเวอร์ท้องถิ่นของฉันเอง

เพียงเพิ่มhttp://localhost/my-siteเป็น URL ใน:

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

ทำงานให้ฉัน


0

ปัญหาและคำตอบให้เปลี่ยนไปเรื่อย ๆ เมื่อ FB กระชับขั้นตอนการเข้าสู่ระบบให้แน่นขึ้น วันนี้ฉันเริ่มได้รับข้อความสยองขวัญ "โดเมนของ URL นี้ไม่รวมอยู่ในโดเมนของแอปเพื่อให้สามารถโหลด URL นี้ได้เพิ่มโดเมนและโดเมนย่อยทั้งหมดของแอปของคุณไปยังฟิลด์ App Domains ในการตั้งค่าแอพ"

คำตอบคือ: ตอนนี้ FB ต้องการการเปลี่ยนเส้นทางแบบเต็ม ดังนั้นสำหรับฉันที่มันเคยเป็นเพียงแค่https://www.example.comมันตอนนี้อยากhttps://www.example.com/auth/facebook/callback สิ่งนี้จะต้องอยู่ในฟิลด์ "การเปลี่ยนเส้นทาง URIs ที่ถูกต้อง OAuth" (การตั้งค่า Developer / Facebook login->)


0

การเข้าสู่ระบบ Facebook -> การตั้งค่า -> URIs การเปลี่ยนเส้นทาง OAuth ที่ถูกต้อง -> แทรกโดเมนของ URL การเปลี่ยนเส้นทางของคุณโปรดจำไว้ว่าคุณควรเพิ่ม 'https' หรือ http เช่น: หาก URL การเปลี่ยนเส้นทางของคุณคือhttps://xxx.xxx.com/path/callback.doคุณจะต้องป้อนhttps://xxx.xxx.com/เท่านั้นมันใช้ได้สำหรับฉัน


0

ขั้นตอนแรก: ใช้https://example.inหรือ URL ใบรับรอง SSL ทั้งหมดอย่าใช้http://example.in

ขั้นตอนที่สอง: การตั้งค่าแอปพลิเคชัน faceboook-> การตั้งค่าพื้นฐาน -> เพิ่มโดเมนหรือโดเมนย่อยของคุณ

ขั้นตอนที่สาม: การตั้งค่าการลงชื่อเข้าใช้แอปพลิเคชัน faceboook-> OAuth Redirect URIs-> เพิ่ม URL การเปลี่ยนเส้นทางทั้งหมดของคุณหลังจากเข้าสู่ระบบ

ขั้นตอนที่สี่: การตั้งค่าแอปพลิเคชัน faceboook-> การตั้งค่าขั้นสูง -> ตัวจัดการโดเมน -> เพิ่มชื่อโดเมนของคุณ

ทำตามขั้นตอนทั้งหมดนี้จากนั้นใช้รหัสแอปพลิเคชันเวอร์ชันแอปพลิเคชันความลับของแอพสำหรับการตั้งค่า


0

ใน Magento 2 ส่วนขยายเข้าสู่ระบบสังคมคุณต้องคัดลอก OAuth เปลี่ยนเส้นทาง URIs ที่ถูกต้องจากแผงควบคุมและเพิ่มลิงค์ไปยังฟิลด์ URIs Redirect URIs เปลี่ยนเส้นทางที่ถูกต้องในหน้าการตั้งค่า OAuth ลูกค้าที่ developers.facebook.com



-1

คำตอบส่วนใหญ่จะเกี่ยวกับการเพิ่ม URL ไปยังโดเมนของแอป แต่เมื่อทำงานใน บริษัท ที่คุณไม่มีสิทธิ์เข้าถึงเหล่านี้สำหรับสิ่งเหล่านั้นคุณสามารถข้ามสิ่งนี้ได้โดยการสร้างโฮสต์เสมือนและสร้างรายการโฮสต์


เพิ่มในไฟล์โฮสต์ (/ etc / hosts) 127.0.0.1 www.your_domain.com

สร้างโฮสต์เสมือนฉันใช้สิ่งนี้กับ apache โฮสต์เสมือน

ServerAdmin เว็บมาสเตอร์ @ 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.