Saya mencoba menguji tombol OAuth , tetapi semuanya (Facebook, Twitter, LinkedIn) kembali dengan kesalahan yang sepertinya memberi sinyal bahwa saya tidak dapat menguji atau menggunakannya dari URL lokal .
Bagaimana orang biasanya bekerja dalam pengembangan dengan hal-hal OAuth jika mereka semua tampaknya memerlukan lingkungan koneksi non-dev dan non-lokal ?
Jawaban:
Perbarui Oktober 2016 : Sekarang termudah: gunakan lvh.me yang selalu menunjuk ke
127.0.0.1
.Jawaban sebelumnya :
Karena permintaan panggilan balik dikeluarkan oleh browser, sebagai respons pengalihan HTTP, Anda dapat mengatur file .hosts Anda atau setara untuk mengarahkan domain yang tidak
localhost
ke 127.0.0.1.Katakanlah misalnya Anda mendaftarkan callback berikut dengan Twitter:
http://www.publicdomain.com/callback/
. Pastikan bahwawww.publicdomain.com
menunjuk ke 127.0.0.1 di file host Anda, DAN bahwa twitter dapat melakukan pencarian DNS yang sukses di www.publicdomain.com, yaitu domain perlu ada dan panggilan balik khusus mungkin harus mengembalikan pesan status 200 jika diminta.EDIT :
Saya baru saja membaca artikel berikut: http://www.tonyamoyal.com/2009/08/17/how-to-quickly-set-up-a-test-for-twitter-oauth-authentication-from-your-local -machine / , yang ditautkan dari pertanyaan ini: Twitter oAuth callbackUrl - pengembangan localhost .
Mengutip artikel:
Ini seharusnya lebih mudah daripada mengotak-atik file .hosts.
Perhatikan bahwa sekarang (Agustus '14) bit.ly tidak mengizinkan penerusan tautan ke localhost; namun pemendek tautan Google berfungsi.
Sunting PS: (Nov '18): Pemendek tautan Google berhenti memberi dukungan untuk localhost atau 127.0.0.1.
sumber
.me
) di redirect URL. Akibatnya, lvh.me tidak berfungsi. Saya malah menemukan kesuksesan dengan lacolhost.com .Atau Anda dapat menggunakan https://tolocalhost.com/ dan mengkonfigurasi bagaimana seharusnya mengarahkan kembali panggilan balik ke situs lokal Anda. Anda dapat menentukan nama host (jika berbeda dari host lokal, yaitu yourapp.local dan nomor port). Hanya untuk tujuan pengembangan.
sumber
Anda juga dapat menggunakan ngrok: https://ngrok.com/ . Saya menggunakannya setiap saat untuk menjalankan server publik di localhost saya. Semoga ini membantu.
Pilihan lain yang bahkan menyediakan domain kustom Anda sendiri secara gratis adalah serveo.net dan https://localtunnel.github.io/www/
sumber
./ngrok http 8080 -host-header="localhost:8080"
dan saya menjalankan dengan url publik.Google tidak mengizinkan uji coba auth api di localhost menggunakan
http://webporject.dev
atau.loc
dan .etc dan tautan singkat google yang mempersingkat url lokal Anda (http://webporject.dev
) jugabit.ly
:). Google hanya menerima url yang dimulaihttp://localhost/
...jika Anda ingin menguji api google auth Anda harus mengikuti langkah-langkah ini ...
jika Anda menggunakan
openserver
pergi ke panel pengaturan dan klikaliases tab
dan klik pada dropdown kemudian temukanlocalhost
dan pilih.sekarang Anda harus memilih folder root proyek web lokal Anda dengan mengklik dropdown berikutnya yang berikutnya dropdown pertama.
dan klik tombol yang disebut
add
dan mulai ulang openever.sekarang proyek lokal Anda tersedia di tautan ini dan
http://localhost/
Anda juga dapat menempelkan url lokal ini ke google auth api keredirect url
bidang ...sumber
Anda dapat mengedit file hosts di windows atau linux Windows: C: \ Windows \ System32 \ Drivers \ etc \ hosts Linux: / etc / hosts
setelah Anda menyelesaikan tes, Anda cukup mengomentari baris yang Anda tambahkan untuk menonaktifkannya
sumber
Untuk pengguna Mac, edit
/etc/hosts
file. Anda harus menggunakansudo vi /etc/hosts
jika hanya baca. Setelah otorisasi, server oauth mengirimkan URL panggilan balik, dan karena URL panggilan balik itu diberikan pada browser lokal Anda, pengaturan DNS lokal akan berfungsi:sumber
Mengambil Google OAuth sebagai referensi
Di Tab klien OAuth Anda
(http://localhost:3000)
ke sumber JavaScript Resmi asal URIDi layar persetujuan OAuth Anda
mywebsite.com
ke domain yang diotorisasiEdit file host di windows atau linux
Windows C:\Windows\System32\Drivers\etc\hosts
Linux : /etc/hosts
untuk ditambahkan127.0.0.1 mywebsite.com
(NB Beri komentar jika ada 127.0.0.1 lainnya)sumber