Thông báo đăng nhập Facebook: “URL bị chặn: Việc chuyển hướng này không thành công vì URI chuyển hướng không có trong danh sách trắng trong Cài đặt OAuth ứng dụng khách của ứng dụng.”


121

Thông báo quan trọng:

Nếu bạn đăng ký thử nghiệm, hãy chuyển đến cài đặt hồ sơ của bạn và theo sở thích của bạn, hãy thêm hồ sơ xóa .

Đang cố gắng đăng nhập bằng Facebook vào trang web của tôi :

Tôi nhận được lỗi sau đây:

URL bị chặn: Chuyển hướng này không thành công vì URI chuyển hướng không có trong danh sách cho phép trong Cài đặt OAuth ứng dụng khách của ứng dụng. Đảm bảo rằng Đăng nhập OAuth ứng dụng khách và web được bật và thêm tất cả các miền ứng dụng của bạn dưới dạng URI chuyển hướng OAuth hợp lệ.

settings(Cơ bản) của tôi trong Facebook là:

Trong tab nâng cao, Valid OAuth redirect URIsđược đặt thành:

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

Ứng dụng là public.

Cài đặt khác (Nâng cao) tại đây: nhập mô tả hình ảnh ở đây

Khóa ứng dụng và bí mật là chính xác. Tôi đang sử dụng Meteor và các gói tài khoản của nó.


ROOT_URL của bạn là gì?
aedm

Bạn đang sử dụng url nào để chuyển hướng đến trang đăng nhập Facebook? Bạn vẫn cần chỉ định redirect_uri trong yêu cầu ủy quyền.
Edward Jiang

@aedm: ROOT_URL được đặt thànhhttp://openstrategynetwork.com
Amir Rahbaran

@EdwardJiang: tôi có thể làm điều đó ở đâu? Thật kỳ lạ vì nó đã từng hoạt động cho localhost. Nhưng ngay cả localhost cũng không hoạt động nữa.
Amir Rahbaran

Tôi đang gặp vấn đề này cũng có thể, trận đấu redirect_uri chính xác đến config trong khách hàng OAuth Cài đặt - xem thêm về developers.facebook.com/support/bugs/232085950706415 cần sự giúp đỡ bất cứ ai .. thanks in advance
jdme

Câu trả lời:


80

Đăng nhập bằng nút Facebook trên trang web của bạn đang liên kết đến:

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

Nếu bạn thay đổi liên kết thành:

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

Nó sẽ hoạt động. Hoặc, bạn có thể thay đổi liên kết Facebook thànhhttp://openstrategynetwork.com/_oauth/facebook

Bạn cũng có thể thêm http://localhost/_oauth/facebookvào các URI chuyển hướng hợp lệ.

Facebook yêu cầu bạn đưa các URI chuyển hướng vào danh sách trắng, vì nếu không, mọi người có thể đăng nhập bằng Facebook cho dịch vụ của bạn và sau đó gửi mã thông báo truy cập của họ đến máy chủ của kẻ tấn công! Và bạn không muốn điều đó xảy ra;]


4
Chính xác thì URI chuyển hướng OAuth là gì? Tôi hy vọng đây là URL giống như ứng dụng web gốc.
AlvinfromDiaspar

1
Điều này có vẻ hiệu quả. Mặc dù tôi không chắc liệu nó có phải ban đầu hay không khi tôi cố gắng đăng nhập bằng tài khoản mà tôi có ứng dụng được tạo. Đã triển khai giải pháp này và sử dụng một tài khoản khác và nó đã hoạt động (dường như). Ngôn ngữ và thông tin trên URI chuyển hướng oAuth cần phải rõ ràng. Thông tin được bỏ bí truyền và gần như phức tạp. Các thuật ngữ được sử dụng thậm chí không được xác định hoặc làm rõ.
abtecas 21/02/18

cảm ơn rất nhiều đã khắc phục sự cố của tôi! mặc dù tôi đã nhận ssl làm việc
Ngọt Chilly Philly

Mẹo là xem url chuyển hướng và thêm url đó vào "URI chuyển hướng OAuth hợp lệ" trong trường hợp của tôi là đăng nhập-facebook.
Usama Saleem

1. đảm bảo thêm có và không có url www vào URI chuyển hướng Xác thực hợp lệ
Bhavin Rana

79

Như người hỏi viết

Trong tab nâng cao, URI chuyển hướng OAuth hợp lệ được đặt thành: ...

và tôi đã gặp vấn đề tương tự (viết url chuyển hướng vào trường nhập sai) Tôi muốn làm nổi bật rằng

Nó không thể

Settings -> Advanced -> Share Redirect Whitelist

nhưng

Facebook Login -> Settings -> Valid OAuth redirect URIs

Nó sẽ giúp tôi tiết kiệm được 2 giờ thử và sai.

Bạn cũng nên nhớ rằng www.example.comnó không giống với example.com. Thêm cả hai định dạng vào URL chuyển hướng.


11
Những người bỏ phiếu: vui lòng thêm nhận xét về mối quan tâm của bạn, nếu không câu trả lời sẽ không tốt hơn.
andymel

6
Chúa ơi, tôi đã dành rất nhiều thời gian để nhìn nhầm chỗ, cảm ơn bạn.
ricks

Đang cố gắng thêm một URI mới, tôi nhận được: New HTTP Redirect URIs are not allowed:(
XCS,

Cám ơn rất nhiều. Tôi đã thử mọi thứ, nhưng không đúng chỗ. "Danh sách trắng chuyển hướng chia sẻ" có nghĩa là gì?
Sunil Kumar

20

Điều này đã làm việc cho tôi.

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

Tôi nhận được điều đó từ trình duyệt của mình sau khi nhấp vào nút Facebook, trình duyệt của bạn sẽ được chuyển hướng đến một liên kết để tích hợp với API Facebook, vì vậy bạn sẽ nhận được chuyển hướng đó ở đâu. Đối với trường hợp của tôi, liên kết này từ nơi tôi lấy 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/

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây


Đối với ứng dụng MVC của tôi, tôi đã phải thêm "/ signin-facebook" vào url của trang web .... cảm ơn vì mẹo tuyệt vời!
davaus

Bạn tiết kiệm tuần của tôi @Umar Asghar
kn3l

11

Đảm bảo " Miền ứng dụng " và Đăng nhập Facebook => URI chuyển hướng OAuth hợp lệ . Ở đó bạn phải kiểm tra www hoặc không có www . Sẽ tốt hơn nếu bạn sử dụng với www hoặc không có cho tất cả các URL trong tệp php, html, css và cài đặt ứng dụng Fb.

Một điều khác là nếu bạn đang sử dụng "/" cuối URL, bạn phải thêm URL đó vào cài đặt ứng dụng của URI chuyển hướng OAuth hợp lệ . Ví dụ: - https://www.example.com/index.php/ nếu url này nếu bạn đang sử dụng trong url chuyển hướng, bạn phải đặt nó thành cài đặt ứng dụng.

Hy vọng điều này sẽ được giúp đỡ.


trong miền ứng dụng, bạn thêm cả có và không có www
qwertzman

Ý bạn là gì bởi người bạn của bài đăng này, tôi hơi bối rối.
TheBAST

6

Đối với ứng dụng Node của tôi,

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

đặt liên quan Url gọi lại

Các URI chuyển hướng OAuth của tôi như sau

nhập mô tả hình ảnh ở đây

Đảm bảo "/" cuối URI chuyển hướng xác thực Facebook

Những thiết lập này đã làm việc cho tôi.


6

Trong trường hợp của tôi, tôi chỉ cần đảm bảo rằng tôi có các url của mình cả có và không có www cho Tên miền ứng dụngURL chuyển hướng :

nhập mô tả hình ảnh ở đây

Trong trường hợp của tôi, tôi phải sử dụng: signin-facebooksau url trang web của tôi, cho url chuyển hướng.


Miền ứng dụng có thực sự cần thiết không? Khi tôi thử nghiệm cục bộ, nó hoạt động mà không cần đặt Miền ứng dụng
Darius.V

Bạn có sử dụng oAuth và chuyển hướng không?
Hooman Bahreini

Đúng. Tôi sử dụng gói symfony github.com/knpuniversity/oauth2-client-bundle
Darius.V

3

Việc thay đổi từ hauth.done = Facebook thành hauth_done = Facebook trong URI chuyển hướng OAuth hợp lệ đã sửa lỗi cho tôi.


1

Ok Trước hết, đây là một thông báo lỗi rất rõ ràng. Chỉ cần nhìn vào điều này nhiều nhà phát triển bỏ lỡ điều này bao gồm cả bản thân tôi. Vui lòng xem ảnh chụp màn hình ở đây.

nhập mô tả hình ảnh ở đây

Trong Sản phẩm> Đăng nhập Facebook> Cài đặt

hoặc chỉ cần truy cập url này tại đây (Thay thế YOUR_APP_ID bằng id ứng dụng của bạn lol):

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

Nếu bạn đang làm việc localhost:3000Hãy chắc chắn rằng bạn cóhttps://localhost:3000/auth/facebook/callback

Tất nhiên, bạn không cần phải có trạng thái trực tiếp (Công tắc màu xanh lá cây ở góc trên bên phải) nhưng trong trường hợp của tôi, tôi đang triển khai heroku ngay bây giờ và sẽ sớm thay thế localhost:3000bằnghttps://myapp.herokuapp.com/auth/facebook/callback

Tất nhiên tôi sẽ cập nhật các url trong Cài đặt / Cơ bản & Cài đặt / Nâng cao và cũng thêm url chính sách bảo mật trong phần cơ bản.

Tôi giả sử rằng bạn đã định cấu hình đúng khởi tạo / devise.rb nếu bạn đang sử dụng devise và bạn đã gem 'omniauth-facebook', '~> 4.0'cài đặt facebook gem thích hợp gem 'omniauth', '~> 1.6'và bạn có các cột cần thiết trong bảng người dùng của mình như uid, image và nhà cung cấp. Đó là nó.


1

Nó có thể giúp ai đó.

Tôi đã gặp thông báo lỗi tương tự, nhưng chỉ trong môi trường dev và staging, không phải trong sản xuất. Các URI chuyển hướng hợp lệ đã được đặt chính xác, cho các miền phụ của nhà phát triển và dàn dựng cũng như cho sản xuất.

Hóa ra tôi đã quên rằng đối với những môi trường đó, chúng tôi sử dụng ứng dụng FB thử nghiệm, một ứng dụng riêng biệt trong trang nhà phát triển FB. Phải chọn và cập nhật cài đặt của nó.



0

Người trợ giúp đăng nhập của trang web của bạn

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

và trong bảng điều khiển ứng dụng facebook (Dưới tab sản phẩm: Đăng nhập Facebook )

URI chuyển hướng OAuth hợp lệ cũng phải giống với xyz.com/user_by_facebook/

như đã đề cập trước đó trong khi đưa ra yêu cầu từ web


0

Chúng tôi đã có cùng một vấn đề, một cơn ác mộng.

  1. Đảm bảo rằng ID ứng dụng và Khóa bí mật của bạn là chính xác. Nếu bạn đang sử dụng các ứng dụng phát triển, dàn dựng và sản xuất riêng biệt để thử nghiệm thì ID ứng dụng và Khóa bí mật đều khác nhau cho mỗi ứng dụng. Đây thường là vấn đề.

  2. Đảm bảo rằng bạn đã đặt đúng URL gọi lại trong tệp cấu hình ứng dụng của mình (xem bên dưới). Và sau đó thêm URL này làm cùng một URL trong cài đặt " Đăng nhập Facebook " trong đó có nội dung " URI chuyển hướng OAuth hợp lệ ". Nó sẽ trông như thế này (tùy thuộc vào môi trường của bạn):

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

  1. Đảm bảo miền ứng dụng của bạn được đặt thành miền chính xác cho từng môi trường, bao gồm cả "www" và "no-www". Facebook cũng yêu cầu các miền này phải khớp với URL của trang web hoặc nền tảng ứng dụng của bạn. Bạn sẽ phải chọn " Thêm nền tảng " để thêm điều này.

Yêu cầu đối sánh URI chuyển hướng với URL của trang web là không thể đối với tôi vì URI chuyển hướng của tôi hoặc được xác định trên một máy chủ khác và trang web của tôi được phục vụ từ máy chủ khác, tôi có thể tiếp tục không?
Jawad

0

Trong trường hợp của tôi, tôi đã tích hợp đăng nhập Facebook trong một hướng dẫn ứng dụng Rails. Tôi đã thêm http: // localhost: 3000 / adsf vào URI chuyển hướng OAuth hợp lệ của mình, nhưng ứng dụng Rails sẽ mở url dưới dạng http://0.0.0.0:3000 và do đó sẽ cố gắng chuyển hướng đến http: //0.0. 0,0: 3000 / asdf . Sau khi thêm http://0.0.0.0:3000/asdf vào URI chuyển hướng OAuth hợp lệ hoặc điều hướng đến http: // localhost: 3000 / asdf , nó hoạt động như mong đợi.


0

Trong trường hợp của tôi, URI, như được định nghĩa trên FB, không sao, nhưng tôi đang sử dụng Spring Security và nó đang thêm ; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD vào URI của tôi, vì vậy, nó gây ra sự không khớp.

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

Để tránh ghi lại URL, tôi đã thêm disable-url-rewriting = "true" vào cấu hình Spring Security, theo cách này:

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

Và nó đã khắc phục sự cố của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.