2012-06-10 33 views
6

Jestem pewien, że wielu deweloperów Django musi natknąć się na ten problem podczas korzystania z social-auth. Początkowo, gdy go stworzysz, chciałbyś przetestować go na swoim lokalnym serwerze, dlatego przekierujesz nazwę domeny do swojego etc/hosts.django-social-auth: Jak przekierować witrynę example.com do 127.0.0.1:8000?

I przyszedł ten w dokumentacji:

https://github.com/omab/django-social-auth#facebook

Jeśli zdefiniować przekierowanie na Facebooku strony konfiguracji, upewnij się, że nie określić http://localhost:8000 ponieważ nie będzie praca podczas testów . Zamiast tego definiuję http://myapp.com i konfiguruję mapowanie na/etc/hosts lub używam dnsmasq.

Z mojego rozumienia nie można zdefiniować żadnych portów w/etc/hosts.

Stąd definiowania tego wpisu tam:

127.0.0.1  example.com 

nadal nie uderzyć mojego serwera Django, który działa na 127.0.0.1:8000.

Jak to robicie?

Dzięki,

+1

Jeśli wpiszesz tylko mysite.com w pasku adresu, domyślnie użyje portu 80. Spróbuj 'mysite.com: 8000' –

+0

Ahh dziękuję, nie wiedziałem tego. Ale autor mówi także: "Zamiast tego definiuję http://myapp.com i konfiguruję mapowanie na/etc/hosts lub używam dnsmasq." Dlatego nie konfiguruje myapp.com: 8000 w ustawieniach facebooka. – Houman

+0

Cóż, nie wiem, czy numer portu jest istotny dla uwierzytelniania z Facebookiem, ale twoją drugą opcją jest uruchomienie Django na porcie 80, który będzie wymagał uprawnień root'a i ten port nie jest już zajęty (na przykład przez Apache). –

Odpowiedz

0

Mam rozwiązać problem przekierowania, wykonując czynności opisane tutaj: https://serverfault.com/questions/397364/how-to-setup-named-virtual-hosts-in-nginx

W skrócie, potrzebny jest wpis w/etc/hosts, jak mam powyżej oraz proxy nginx pomiędzy.

+0

Pamiętaj, że możesz użyć 127.0.0.1.xip.io – jterrace

+0

@Kave, czy odpowiedź podana w odpowiedzi na serverfault działa? Widzę w tym komentarzu, że nadal zmagałeś się z problemem, daj mi znać – daydreamer

+0

Daydreamer. Tak, zadziałało. Rozwiązaliśmy to na czacie. Skutecznie popełniłem błąd, usuwając linię 127.0.0.1 MySite.com z/etc/hosts, zanim podjąłem próbę rozwiązania nginx. Nie zdawałem sobie sprawy, że potrzebuję obu. – Houman

0

Zainstaluj fiddler. Po zainstalowaniu przejdź do narzędzi> Hosty.

Następnie można mapować z 127.0.0.1:8000 do mysite.com

3

Każdy mówi: „example.com dodać do pliku hosts ...”, ale zaniedbuje wspomnieć, że należy użyć example.com: 8000 po uruchomieniu serwera uruchomieniowego. Oto bardziej szczegółowe kroki, które pracowały dla mnie:

w systemie Linux:

  • otworzyć terminal
  • sudo gedit (lub zastąpić gedit z edytora tekstu wyboru)
  • otworzyć etc/hosts złożyć
  • dodać linię: 127.0.0.1 example.com (jeśli masz już linię zaczynając 127.0.0.1 można go opuścić - https://serverfault.com/questions/231844/is-it-safe-to-add-additional-127-0-0-1-entries-to-etc-hosts)
  • zapisać plik
  • Uruchom swój serwer Django - python manage.py runserver
  • otwórz przeglądarkę i przejdź do example.com:8000 (daje to prawidłowy oddzwanianie do google i innych witryn, które nie będą działać z 127.0.0.1 lub localhost)
  • Powinieneś zobaczyć stronę główną swojej witryny django.
  • Przejdź do witryny społecznościowej, z którą chcesz się połączyć, i skonfiguruj swój identyfikator klienta, używając example.com jako nazwy strony internetowej.Na przykład, adres URL wywołania zwrotnego dla google to http://example.com:8000/complete/google-oauth2/
  • Skopiuj odpowiednie ustawienia klucza/id i wklej do SETTINGS.py
  • Teraz twój serwer dev powinien działać!

Wiem, że jest to starszy wpis, ale nigdzie nie mogę znaleźć pełnych kroków. W razie potrzeby dodaj wyjaśnienia, ponieważ nie jestem ekspertem w tej dziedzinie.