OAuth: yerel URL'lerle nasıl test edilir?


155

OAuth düğmelerini test etmeye çalışıyorum , ancak hepsi (Facebook, Twitter, LinkedIn) bunları test edemediğim veya yerel bir URL'den kullanamadığımı gösteren hatalarla geri geliyor .

Herkes, geliştirici olmayan ve yerel olmayan bağlantı ortamları gerektiriyorsa, genellikle OAuth öğelerinde geliştirme konusunda nasıl çalışır ?


Bir ara geri cevap verdim: stackoverflow.com/a/10410838/604511
Jesvin Jose

Yanıtlar:


133

Ekim 2016 Güncellemesi : En kolay: her zaman işaret eden lvh.me dosyasını kullanın 127.0.0.1.

Önceki Cevap :

Geri arama isteği tarayıcı tarafından bir HTTP yönlendirme yanıtı olarak verildiğinden, .hosts dosyanızı veya eşdeğerini localhost127.0.0.1 olmayan bir etki alanını gösterecek şekilde ayarlayabilirsiniz .

Eğer Twitter ile aşağıdaki geri arama kayıt Say örneğin: http://www.publicdomain.com/callback/. www.publicdomain.comAnasistemler dosyasında 127.0.0.1'e işaret ettiğinden VE Twitter'ın www.publicdomain.com adresinde başarılı bir DNS araması yapabildiğinden emin olun , yani alanın olması gerekir ve özel geri arama istenirse 200 durum iletisi döndürmelidir.

DÜZENLE :

Sadece şu makaleyi okudum: http://www.tonyamoyal.com/2009/08/17/how-to-quickly-set-up-a-test-for-twitter-oauth-authentication-from-your-local -machine / ( bu soru ile bağlantılı): Twitter oAuth callbackUrl - localhost geliştirme .

Makaleyi alıntılamak için:

Bir URL kısaltma hizmeti olan bit.ly'yi kullanabilirsiniz. Sadece [// // localhost: 8080 / twitter_callback] gibi localhost URL'sini kısaltın ve kısaltılmış URL'yi Twitter uygulamanızda geri arama olarak kaydedin.

Bu, .hosts dosyasında uğraşmaktan daha kolay olmalıdır.

Şimdi (Ağustos '14) bit.ly'nin localhost'a bağlantı iletmeye izin vermediğini unutmayın; ancak Google bağlantı kısaltıcı çalışır.

PS düzenleme: (Kasım '18): Google bağlantı kısaltıcı localhost veya 127.0.0.1 için destek vermeyi durdurdu.


3
Sunucunun callbackurl çağırdığını düşündüm ve şimdi oauth'un bir messenger olarak istemciyi kullandığını ve sunucular arasında hiçbir bağlantı yapılmadığını fark ettim.
Kristian Benoit

10
Lvh.me'nin Levi Cook adlı bir beyefendinin sahibi olduğunu ( gist.github.com/levicook/563675 ) sahip olduğunu ve özel olarak sahip olduğunu belirtmek gerekir. İyi bir adam gibi gözüküyor ama küresel bir otorite tarafından resmi olarak yetkili bir alan değil, bu yüzden zaman içinde "teorik olarak" çalışmayı durdurabilir.
Mario Peshev

4
Yazma tarihi itibariyle Google, .meyönlendirme URL'lerinde süslü alan adı uzantılarına (gibi ) izin vermiyor gibi görünüyor . Sonuç olarak, lvh.me çalışmadı. Bunun yerine lacolhost.com ile başarı buldum .
PullJosh

3
Lvh.me'nin sahibi ayrıca tüm yetki kodlarınızı toplamaya başlayabilir ...
Taylor Buchanan

2
@JonNylander DNS kayıtlarını, kimlik doğrulama kodunu ve durumunu şeffaf bir şekilde depolayan ve yine de yerel ana bilgisayara yeniden yönlendiren başka bir siteye işaret edecek şekilde kolayca değiştirebilirler. DNS'yi düzenli olarak kontrol etmedikçe, zaten erişime sahip olana kadar fark etmezsiniz. Hemen fark edebilecekler bunu tarayıcı bağlamının dışında kullanan kişilerdir.
Taylor Buchanan

18

Veya https://tolocalhost.com/ adresini kullanabilir ve geri aramayı yerel sitenize nasıl yönlendireceğini yapılandırabilirsiniz. Ana bilgisayar adını belirtebilirsiniz (localhost'tan farklıysa, yani yourapp.local ve port numarası). Yalnızca geliştirme amaçlıdır.


13

Ayrıca ngrok da kullanabilirsiniz: https://ngrok.com/ . Ben her zaman localhost üzerinde çalışan bir ortak sunucu için kullanın. Bu yardımcı olur umarım.

Kendi özel alan adınızı ücretsiz olarak sunan başka bir seçenek de serveo.net ve https://localtunnel.github.io/www/


1
Düşündüğüm daha kolaydı! Hesabımı yeni oluşturdum, yükledim ve koştum ./ngrok http 8080 -host-header="localhost:8080"ve herkese açık bir URL ile çalışıyordum.
Miguel Reyes

3

Google localhost üzerinde deney auth API kullanarak izin vermez http://webporject.devya .loc.etc ve ve yerel url (kısaltılmış bu kısa linki google http://webporject.devda) bit.ly:). Google yalnızca başlayan URL'yi kabul ediyor http://localhost/...

google auth api'yi test etmek istiyorsanız bu adımları izlemelisiniz ...

yeni takma ad ayarla

Eğer kullanırsanız openserverayarları paneline gidin ve üzerine tıklayın aliases tabve açılan listeden sonra bulmak localhostve onu seçin.

şimdi ilk açılır listenin yanındaki bir sonraki açılır menüyü tıklayarak yerel web projesi kök klasörünüzü seçmelisiniz.

ve denilen düğmeyi tıklayın addve tekrar açılmaya başlayın

şimdi yerel projeniz bu bağlantıda mevcut http://localhost/ ayrıca bu yerel url'yi google auth api redirect urlalanına yapıştırabilirsiniz ...


3

Hosts dosyasını Windows veya Linux'ta düzenleyebilirsiniz Windows: C: \ Windows \ System32 \ Drivers \ etc \ hosts Linux: / etc / hosts

localhost ad çözümlemesi DNS içinde işlenir.

127.0.0.1 mywebsite.com

Testlerinizi bitirdikten sonra, devre dışı bırakmak için eklediğiniz satırı yorumlamanız yeterlidir

127.0.0.1 mywebsite.com


Benim için çalıştı, teşekkürler. Ayrıca, 3000 numaralı bağlantı noktasında örneğin Node.js kullanıyorsanız, mywebsite.com:3000
flow3r

3

Mac kullanıcıları için /etc/hostsdosyayı düzenleyin . Eğer sudo vi /etc/hostssalt okunur ise kullanmanız gerekir . Yetkilendirmeden sonra oauth sunucusu geri arama URL'sini gönderir ve bu geri arama URL'si yerel tarayıcınızda oluşturulduğundan, yerel DNS ayarı çalışır:

127.0.0.1       mylocal.com

0

Google OAuth'u referans alma

  • Senin içinde OAuth istemci Tab

    1. Senin ekleyin Uygulama URI'si örneği(http://localhost:3000) için Yetkili JavaScript kökenleri URI'lerinin
  • Senin içinde OAuth onaylama ekranında

    1. Ekle mywebsite.comiçin Yetkili etki
  • Windows C:\Windows\System32\Drivers\etc\hosts Linux : /etc/hostsEklemek için hosts dosyasını windows veya linux üzerinde düzenleyin 127.0.0.1 mywebsite.com (Başka 127.0.0.1 varsa açıklama yapın)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.