ข้อความเข้าสู่ระบบ Facebook:“ URL ถูกบล็อก: การเปลี่ยนเส้นทางนี้ล้มเหลวเนื่องจาก URI การเปลี่ยนเส้นทางไม่อยู่ในรายการที่อนุญาตพิเศษในการตั้งค่า OAuth ไคลเอ็นต์ของแอป”


121

ประกาศสำคัญ:

หากท่านลงทะเบียนสำหรับการทดสอบให้ไปที่การตั้งค่าโปรไฟล์ของคุณและที่คุณสนใจเพิ่มรายละเอียดลบ

พยายามเข้าสู่ระบบด้วย Facebook ไปยังเว็บไซต์ของฉัน:

ฉันได้รับข้อผิดพลาดต่อไปนี้:

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

settings(พื้นฐาน) ของฉันใน Facebook คือ:

ในแท็บขั้นสูงValid OAuth redirect URIsตั้งค่าเป็น:

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

แอพคือpublic.

การตั้งค่าเพิ่มเติม (ขั้นสูง) ที่นี่: ใส่คำอธิบายภาพที่นี่

รหัสแอปและข้อมูลลับถูกต้อง ฉันใช้ Meteor และแพ็คเกจบัญชีของมัน


ROOT_URL ของคุณคืออะไร
aedm

คุณใช้ URL ใดในการเปลี่ยนเส้นทางไปยังหน้าลงชื่อเข้าใช้ Facebook คุณยังคงต้องระบุ redirect_uri ในคำขออนุญาต
Edward Jiang

@aedm: ROOT_URL ตั้งเป็นhttp://openstrategynetwork.com
Amir Rahbaran

@EdwardJiang: ฉันจะทำแบบนั้นได้ที่ไหน? มันแปลกมากเพราะครั้งหนึ่งเคยทำงานให้กับ localhost แต่แม้แต่ localhost ก็ไม่ทำงานอีกต่อไป
Amir Rahbaran

ฉันกำลังประสบปัญหานี้เช่นกัน redirect_uri ตรงกับการกำหนดค่าในการตั้งค่า OAuth ของไคลเอ็นต์ - ดูเพิ่มเติมใน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/facebookURI การเปลี่ยนเส้นทางที่ถูกต้อง

Facebook กำหนดให้คุณกำหนดรายการที่อนุญาตพิเศษในการเปลี่ยนเส้นทาง URI เนื่องจากไม่เช่นนั้นผู้อื่นสามารถเข้าสู่ระบบด้วย Facebook สำหรับบริการของคุณจากนั้นจึงส่งโทเค็นการเข้าถึงไปยังเซิร์ฟเวอร์ของผู้โจมตี และคุณไม่ต้องการให้เกิดขึ้น;]


4
URI การเปลี่ยนเส้นทาง OAuth คืออะไร? ฉันคาดว่านี่จะเป็น URL เดียวกับแอปรูทเว็บ
AlvinfromDiaspar

1
ดูเหมือนว่าจะได้ผล แม้ว่าฉันจะไม่แน่ใจว่าเดิมไม่ใช่เพราะฉันพยายามเข้าสู่ระบบด้วยบัญชีที่ฉันมีแอพที่สร้างขึ้น ใช้โซลูชันนี้และใช้บัญชีอื่นและใช้งานได้ (ดูเหมือน) ภาษาและข้อมูลบน URI การเปลี่ยนเส้นทาง oAuth ต้องชัดเจน ข้อมูลจะออกจากความลับและเกือบจะเป็นความลับ คำศัพท์ที่ใช้ไม่ได้กำหนดหรือชี้แจง
abtecas

ขอบคุณมากที่แก้ไขปัญหาของฉัน! แม้ว่าฉันจะทำงาน ssl
Sweet Chilly Philly

เคล็ดลับคือการดู URL การเปลี่ยนเส้นทางและเพิ่มลงใน "URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้อง" ในกรณีของฉันคือ signin-facebook
Usama Saleem

1. อย่าลืมเพิ่ม URL แบบมีและไม่มี www ในValid Auth เปลี่ยนเส้นทาง URI
Bhavin Rana

79

ตามที่ผู้ถามเขียน

ในแท็บขั้นสูง URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องถูกตั้งค่าเป็น: ...

และฉันมีปัญหาเดียวกัน (การเขียน URL การเปลี่ยนเส้นทางลงในช่องป้อนข้อมูลผิด) ฉันต้องการเน้นสิ่งนั้น

มันไม่ใช่

Settings -> Advanced -> Share Redirect Whitelist

แต่

Facebook Login -> Settings -> Valid OAuth redirect URIs

มันจะช่วยฉันได้ 2 ชั่วโมงในการลองผิดลองถูก

นอกจากนี้คุณควรมีไว้ในใจว่า ไม่ได้เป็นเช่นเดียวกับwww.example.com example.comเพิ่มทั้งสองรูปแบบใน URL การเปลี่ยนเส้นทาง


11
ผู้ลงคะแนนเสียง: โปรดเพิ่มความคิดเห็นเกี่ยวกับข้อกังวลของคุณมิฉะนั้นคำตอบจะไม่ดีขึ้น
andymel

6
พระเยซูฉันใช้เวลามากมายในการมองหาสถานที่ผิดขอบคุณ
ricks

ฉันพยายามเพิ่ม URI ใหม่New HTTP Redirect URIs are not allowed:(
XCS

ขอบคุณมาก. ฉันลองทุกอย่างแล้ว แต่ผิดที่ "Share Redirect Whitelist" หมายถึงอะไร
Sunil Kumar

20

สิ่งนี้ได้ผลสำหรับฉัน

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 ของฉันฉันต้องเพิ่ม "/ signin-facebook" ใน URL ของไซต์ .... ขอบคุณสำหรับเคล็ดลับที่ยอดเยี่ยม!
davaus

คุณช่วยสัปดาห์ของฉัน @Umar Asghar
kn3l

11

ให้แน่ใจว่า " App โดเมน " และFacebook เข้าสู่ระบบ => OAuth ที่ถูกต้อง URI ของการเปลี่ยนเส้นทาง คุณต้องตรวจสอบwwwหรือไม่มี www . จะดีกว่าถ้าคุณใช้กับ www หรือไม่มีสำหรับ URL ทั้งหมดใน php, html, ไฟล์ css และการตั้งค่าแอพ Fb

สิ่งอื่น ๆ คือถ้าคุณกำลังใช้ "/" ในตอนท้ายของ URL ที่คุณจะต้องเพิ่ม URL ที่จะตั้งค่าแอปของที่ถูกต้อง OAuth URI ของการเปลี่ยนเส้นทาง ตัวอย่าง: - https://www.example.com/index.php/ หาก url นี้หากคุณใช้ใน URL เปลี่ยนเส้นทางคุณต้องตั้งค่านั้นเป็นการตั้งค่าแอพ

หวังว่านี่จะเป็นความช่วยเหลือ


ในโดเมนแอปคุณเพิ่มทั้งที่มีและไม่มี www
qwertzman

คุณหมายถึงอะไรโดยเพื่อนโพสต์นี้ฉันค่อนข้างสับสน
TheBAST

6

สำหรับ Node Application ของฉัน

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

ใส่ URL เรียกกลับที่สัมพันธ์กัน

OAuth ของฉันเปลี่ยนเส้นทาง URI ดังนี้

ใส่คำอธิบายภาพที่นี่

ตรวจสอบให้แน่ใจว่า"/"ที่ส่วนท้ายของ URI การเปลี่ยนเส้นทางการตรวจสอบ สิทธิ์ของ Facebook

การตั้งค่าเหล่านี้ใช้ได้ผลสำหรับฉัน


6

ในกรณีของฉันฉันต้องแน่ใจว่าฉันมี URL ทั้งที่มีและไม่มีwwwสำหรับApplication DomainและRedirect URL :

ใส่คำอธิบายภาพที่นี่

ในกรณีของฉันฉันต้องใช้: signin-facebookafter my site url, for redirect url


App Domains จำเป็นจริงหรือ? เมื่อฉันทดสอบในเครื่องมันทำงานได้โดยไม่ต้องตั้งค่า App Domains
Darius.V

คุณใช้ oAuth และการเปลี่ยนเส้นทางหรือไม่
Hooman Bahreini

ใช่. ฉันใช้ symfony Bundle github.com/knpuniversity/oauth2-client-bundle
Darius V

3

การเปลี่ยนจากhauth.done = Facebookเป็นhauth_done = Facebookใน URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องแก้ไขให้ฉัน


1

ตกลงก่อนอื่นนี่เป็นข้อความแสดงข้อผิดพลาดที่ชัดเจนมาก เพียงแค่ดูที่นักพัฒนาหลายคนคิดถึงสิ่งนี้รวมถึงตัวฉัน โปรดดูภาพหน้าจอที่นี่

ใส่คำอธิบายภาพที่นี่

ภายใต้ผลิตภัณฑ์> เข้าสู่ระบบ Facebook> การตั้งค่า

หรือไปที่ URL นี้ที่นี่ (แทนที่ YOUR_APP_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 นโยบายความเป็นส่วนตัวในส่วนพื้นฐาน

ฉันสมมติว่าคุณได้กำหนดค่า initializers / devise.rb อย่างถูกต้องหากคุณใช้อุปกรณ์และคุณได้gem 'omniauth-facebook', '~> 4.0'ติดตั้งอัญมณีFacebook ที่เหมาะสมgem 'omniauth', '~> 1.6'และคุณมีคอลัมน์ที่จำเป็นในตารางผู้ใช้ของคุณเช่น uid, image, และ provider แค่นั้นแหละ.


1

มันอาจช่วยใครสักคน

ฉันมีข้อความแสดงข้อผิดพลาดที่คล้ายกัน แต่เฉพาะในสภาพแวดล้อมการพัฒนาและการจัดเตรียมไม่ใช่ในการใช้งานจริง URI การเปลี่ยนเส้นทางที่ถูกต้องได้รับการตั้งค่าอย่างถูกต้องสำหรับโดเมนย่อย dev และ staging รวมถึงการใช้งานจริง

ปรากฎว่าฉันลืมไปว่าสำหรับสภาพแวดล้อมเหล่านั้นเราใช้แอพ FB ทดสอบซึ่งแยกต่างหากในหน้านักพัฒนาซอฟต์แวร์ FB ต้องเลือกและอัปเดตการตั้งค่า



0

ผู้ช่วยเข้าสู่ระบบของไซต์ของคุณ

$ loginUrl = $ helper-> getLoginUrl ('xyz.com/user_by_facebook/', $ สิทธิ์);

และในแผงควบคุมแอปพลิเคชัน facebook (ใต้แท็บผลิตภัณฑ์: เข้าสู่ระบบ Facebook )

URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องควรเหมือนกันกับ xyz.com/user_by_facebook/

ดังที่กล่าวไว้ก่อนหน้านี้ในขณะที่ขอจากเว็บ


0

เรามีปัญหาเดียวกันเช่นฝันร้าย

  1. ตรวจสอบให้แน่ใจว่ารหัสแอปและรหัสลับของคุณถูกต้อง หากคุณใช้แอปการพัฒนาการจัดเตรียมและการใช้งานจริงแยกต่างหากสำหรับการทดสอบรหัสแอปและรหัสลับจะแตกต่างกันสำหรับแต่ละแอป ซึ่งมักจะเป็นปัญหา

  2. ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่า URL เรียกกลับอย่างถูกต้องในไฟล์กำหนดค่าแอปของคุณ (ดูด้านล่าง) จากนั้นเพิ่มเป็น URL เดียวกันภายใต้การตั้งค่า "การเข้าสู่ระบบ Facebook " โดยระบุว่า " URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้อง " ควรมีลักษณะดังนี้ (ขึ้นอยู่กับสภาพแวดล้อมของคุณ):

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

ในกรณีของฉันฉันกำลังรวมการเข้าสู่ระบบ Facebook ไว้ในบทช่วยสอนแอพ Rails ฉันได้เพิ่มhttp: // localhost: 3000 / adsfลงใน URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องของฉันแล้ว แต่แอป Rails จะเปิด url เป็นhttp://0.0.0.0:3000และจะพยายามเปลี่ยนเส้นทางไปที่http: //0.0 0.0: 3000 / asdf . หลังจากเพิ่มhttp://0.0.0.0:3000/asdfลงใน URI การเปลี่ยนเส้นทาง OAuth ที่ถูกต้องหรือไปที่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 ใหม่ฉันได้เพิ่มdisable-url-rewriting = "true"ใน Spring Security config ด้วยวิธีนี้:

<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.