Pesan masuk Facebook: “URL Diblokir: Pengalihan ini gagal karena URI pengalihan tidak masuk daftar putih di Setelan OAuth Klien aplikasi.”

121

Pemberitahuan Penting:

Jika Anda mendaftar untuk pengujian, buka pengaturan profil Anda dan untuk kepentingan Anda tambahkan hapus profil .

Mencoba masuk dengan Facebook ke situs web saya :

Saya mendapatkan kesalahan berikut:

URL Diblokir: Pengalihan ini gagal karena URI pengalihan tidak diizinkan di Setelan OAuth Klien aplikasi. Pastikan Login OAuth Klien dan Web aktif dan tambahkan semua domain aplikasi Anda sebagai URI Pengalihan OAuth yang Valid.

Saya settings(Dasar) di Facebook adalah:

Di tab lanjutan, Valid OAuth redirect URIsdiatur ke:

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

Aplikasi adalah public.

Lebih banyak pengaturan (Lanjutan) di sini: masukkan deskripsi gambar di sini

Kunci dan rahasia aplikasi sudah benar. Saya menggunakan Meteor dan paket akunnya.

Amir Rahbaran
sumber
Apa ROOT_URL Anda?
aedm
Url apa yang Anda gunakan untuk mengarahkan ulang ke halaman masuk Facebook? Anda masih perlu menentukan redirect_uri dalam permintaan otorisasi.
Edward Jiang
@aedm: ROOT_URL disetel kehttp://openstrategynetwork.com
Amir Rahbaran
@ EdwardJiang: di mana saya bisa melakukan itu? Aneh karena dulu berfungsi untuk localhost. Tetapi bahkan localhost tidak berfungsi lagi.
Amir Rahbaran
Saya mengalami masalah ini juga, redirect_uri sama persis dengan konfigurasi di Pengaturan OAuth Klien - lihat selengkapnya di developers.facebook.com/support/bugs/232085950706415 butuh bantuan siapa pun .. terima kasih sebelumnya
jdme

Jawaban:

80

Tombol login dengan Facebook di situs Anda terhubung ke:

https://www.facebook.com/v2.2/dialog/oauth?client_id=1500708243571026&redirect_uri=http://openstrategynetwork.com/_oauth/facebook&display=popup&scope=email&state=eyJsb2dpblN0eWxlIjoicG9wdXAiLCJjcmVkZW50aWFsVG9rZW4iOiIwSXhEU05XamJjU0VaQWdqcmF6SXdOUWRuRFozXzc0X19lbVhGWUJTZGNYIiwiaXNDb3Jkb3ZhIjpmYWxzZX0=

Memperhatikan: redirect_uri=http://openstrategynetwork.com/_oauth/facebook

Jika Anda malah mengubah tautan ke:

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

Ini harus berhasil. Atau, Anda dapat mengubah tautan Facebook menjadihttp://openstrategynetwork.com/_oauth/facebook

Anda juga dapat menambahkan http://localhost/_oauth/facebookke URI pengalihan yang valid.

Facebook mengharuskan Anda memasukkan URI pengalihan ke daftar putih, karena jika tidak, orang dapat masuk dengan Facebook untuk layanan Anda, lalu mengirim token akses mereka ke server penyerang! Dan Anda tidak ingin itu terjadi;]

Edward Jiang
sumber
4
Apa sebenarnya URI pengalihan OAuth itu? Saya berharap ini menjadi URL yang sama dengan aplikasi web root.
AlvinfromDiaspar
1
Sepertinya ini berhasil. Meskipun saya tidak yakin apakah itu awalnya karena saya mencoba masuk dengan akun tempat saya membuat aplikasi. Menerapkan solusi ini, dan menggunakan akun yang berbeda dan berhasil (tampaknya). Bahasa dan info tentang URI pengalihan oAuth harus jelas. Info ini berhenti esoterik dan hampir misterius. Istilah yang digunakan bahkan tidak ditentukan atau diklarifikasi.
abtecas
terima kasih banyak telah memperbaiki masalah saya! Meskipun saya mendapat ssl bekerja
Sweet Chilly Philly
Triknya adalah dengan melihat url pengalihan dan menambahkannya ke "URI Pengalihan OAuth yang Valid" dalam kasus saya itu adalah masuk-facebook.
Usama Saleem
1. pastikan untuk menambahkan dengan dan tanpa url www ke URI pengalihan Auth Valid
Bhavin Rana
79

Seperti yang ditulis oleh penanya

Di tab lanjutan, URI pengalihan OAuth yang valid disetel ke: ...

dan saya memiliki masalah yang sama (menulis url pengalihan ke bidang masukan yang salah) saya ingin menyoroti itu

Ini bukan

Settings -> Advanced -> Share Redirect Whitelist

tapi

Facebook Login -> Settings -> Valid OAuth redirect URIs

Ini akan menghemat 2 jam trial and error.

Anda juga harus mengingatnya bahwa www.example.comtidak sama dengan example.com. Tambahkan kedua format ke URL pengalihan.

andymel
sumber
11
Para pemilih yang tidak setuju: tolong tambahkan komentar tentang kekhawatiran Anda, jika tidak jawabannya tidak akan menjadi lebih baik.
andymel
6
Astaga, aku menghabiskan banyak waktu mencari di tempat yang salah, terima kasih.
Ricks
Mencoba menambahkan URI baru, saya mendapatkan: New HTTP Redirect URIs are not allowed:(
XCS
Terima kasih banyak. Saya mencoba segalanya, tetapi di tempat yang salah. Apa artinya "Share Redirect Whitelist"?
Sunil Kumar
20

Ini berhasil untuk saya.

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

Saya mendapatkannya dari browser saya setelah mengklik tombol Facebook, browser Anda akan diarahkan ke link untuk diintegrasikan dengan API Facebook, jadi di mana Anda akan mendapatkan pengalihan itu. Untuk kasus saya, tautannya adalah ini dari tempat saya mendapatkan 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/

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Umar Asghar
sumber
Untuk aplikasi MVC saya, saya harus menambahkan "/ signin-facebook" ke url situs .... terima kasih atas tip yang luar biasa!
davaus
Anda menyelamatkan minggu saya @Umar Asghar
kn3l
11

Pastikan " Domain Aplikasi " dan Login Facebook => URI pengalihan OAuth yang valid . Di sana Anda harus memeriksa www atau tanpa www . Lebih baik jika Anda menggunakan dengan www atau tanpa untuk semua URL di php, html, file css dan pengaturan aplikasi Fb.

Hal lainnya adalah jika Anda menggunakan akhir "/" dari URL, Anda harus menambahkan URL tersebut ke setelan aplikasi URI pengalihan OAuth yang valid . Contoh: - https://www.example.com/index.php/ jika url ini jika Anda menggunakan di redirect url, Anda harus mengaturnya ke pengaturan aplikasi.

Semoga ini bisa membantu.

Sumith Harshan
sumber
dalam domain aplikasi Anda menambahkan dengan dan tanpa www
qwertzman
Apa yang anda maksud dengan postingan ini sobat saya agak bingung.
TheBAST
6

Untuk Aplikasi Node saya,

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

letakkan kerabat Url panggilan balik

URI pengalihan OAuth saya sebagai berikut

masukkan deskripsi gambar di sini

Pastikan "/" di akhir URI pengalihan autentikasi Facebook

Pengaturan ini berhasil untuk saya.

NIKHIL CM
sumber
6

Dalam kasus saya, saya hanya perlu memastikan bahwa saya memiliki url saya dengan dan tanpa www untuk Domain Aplikasi dan URL Pengalihan :

masukkan deskripsi gambar di sini

Dalam kasus saya, saya harus menggunakan: signin-facebooksetelah url situs saya, untuk redirect url.

Hooman Bahreini
sumber
Apakah Domain Aplikasi benar-benar dibutuhkan? Ketika saya mengujinya secara lokal, itu bekerja tanpa mengatur App Domains
Darius.V
Apakah Anda menggunakan oAuth, dan pengalihan?
Hooman Bahreini
Iya. Saya menggunakan bundel symfony github.com/knpuniversity/oauth2-client-bundle
Darius.V
3

Mengubah dari hauth.done = Facebook menjadi hauth_done = Facebook di URI pengalihan OAuth yang Valid memperbaikinya untuk saya.

girlgeek.dll
sumber
1

Ok Pertama-tama ini adalah pesan kesalahan yang sangat jelas. Lihat saja ini banyak devs yang merindukan ini termasuk diriku. Silakan lihat screen shotnya di sini.

masukkan deskripsi gambar di sini

Di bawah Produk> Login Facebook> Pengaturan

atau cukup buka url ini di sini (Ganti YOUR_APP_ID dengan id aplikasi Anda lol):

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

Jika Anda sedang mengerjakan localhost:3000Pastikan Anda punyahttps://localhost:3000/auth/facebook/callback

Tentu Anda tidak harus memiliki status langsung (Tombol Hijau di pojok kanan atas) tetapi dalam kasus saya, saya menerapkan ke heroku sekarang dan akan segera menggantikannya localhost:3000denganhttps://myapp.herokuapp.com/auth/facebook/callback

Tentu saja saya akan memperbarui url di Pengaturan / Dasar & Pengaturan / Lanjutan dan juga menambahkan url kebijakan privasi di bagian dasar.

Saya berasumsi bahwa Anda telah mengonfigurasi penginisialisasi / devise.rb dengan benar jika Anda menggunakan devise dan Anda telah gem 'omniauth-facebook', '~> 4.0'memasang permata facebook yang tepat dan gem 'omniauth', '~> 1.6', dan Anda memiliki kolom yang diperlukan dalam tabel pengguna seperti uid, image, dan provider. Itu dia.

Elias Glyptis
sumber
1

Ini mungkin membantu seseorang.

Saya memiliki pesan kesalahan serupa, tetapi hanya di lingkungan dev dan pementasan, bukan dalam produksi. URI pengalihan yang valid disetel dengan benar, untuk subdomain dev dan staging serta untuk produksi.

Ternyata saya lupa bahwa untuk lingkungan tersebut kami menggunakan aplikasi pengujian FB, yang merupakan satu terpisah di halaman pengembang FB. Harus memilih itu dan memperbarui pengaturannya.

vargen_
sumber
0

Coba tambahkan http://openstrategynetwork.com/ sigin-facebook ke URL pengalihan valid Pengaturan OAuth Klien bersama dengan URL pengalihan Anda sendiri.

Hung Vu
sumber
0

Pembantu Login situs Anda

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

dan di dashboard aplikasi facebook (Di bawah tab produk: Login Facebook )

URI pengalihan OAuth yang valid juga harus sama dengan xyz.com/user_by_facebook/

seperti yang disebutkan sebelumnya saat membuat permintaan dari web

zohaib
sumber
0

Kami memiliki masalah yang sama, seperti mimpi buruk.

  1. Pastikan ID Aplikasi dan Kunci Rahasia Anda benar. Jika Anda menggunakan aplikasi pengembangan, pementasan, dan produksi yang terpisah untuk pengujian, ID Aplikasi dan Kunci Rahasia semuanya berbeda untuk setiap aplikasi. Ini sering menjadi masalah.

  2. Pastikan Anda telah menyetel URL panggilan balik dengan benar di file konfigurasi aplikasi Anda (lihat di bawah). Dan kemudian tambahkan ini sebagai URL yang sama di bawah pengaturan " Login Facebook " di mana dikatakan " URI pengalihan OAuth valid ". Ini akan terlihat seperti ini (tergantung pada lingkungan Anda):

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

  1. Pastikan domain aplikasi Anda disetel ke domain yang benar untuk setiap lingkungan, termasuk "www" dan "no-www". Facebook juga mewajibkan domain ini untuk mencocokkan URL situs web atau platform aplikasi Anda. Anda harus memilih " Tambahkan Platform " untuk menambahkan ini.
kaleazy
sumber
persyaratan untuk mencocokkan URI pengalihan dengan URL situs web tidak memungkinkan bagi saya karena URI pengalihan saya atau ditentukan di server lain dan situs web saya disajikan dari server yang berbeda, bagaimana saya dapat melakukannya?
Jawad
0

Dalam kasus saya, saya mengintegrasikan login Facebook dalam tutorial aplikasi Rails. Saya telah menambahkan http: // localhost: 3000 / adsf ke URI Pengalihan OAuth Valid saya, tetapi aplikasi Rails akan membuka url sebagai http://0.0.0.0:3000 dan karena itu akan mencoba mengalihkan ke http: //0.0. 0,0: 3000 / asdf . Setelah menambahkan http://0.0.0.0:3000/asdf ke URI Pengalihan OAuth yang Valid, atau menavigasi ke http: // localhost: 3000 / asdf , ini berfungsi seperti yang diharapkan.

jausel
sumber
0

Dalam kasus saya, URI, seperti yang didefinisikan di FB, baik-baik saja, tetapi saya menggunakan Keamanan Musim Semi dan menambahkan ; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD ke URI saya jadi, itu menyebabkan ketidakcocokan.

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

Untuk menghindari penulisan ulang URL, saya menambahkan disable-url-rewriting = "true" ke konfigurasi Spring Security, dengan cara ini:

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

Dan itu memperbaiki masalah saya.

lm2a
sumber