2012-11-27 34 views
6

Używam social-auth z moją aplikacją internetową django. Kiedy idę do/login/facebook w środowisku produkcyjnym, użytkownik jest w stanie zalogować się przy użyciu danych z Facebooka. Jednak w moim środowisku programistycznym, kiedy dostępJak zalogować się za pomocą Facebook w środowisku programistycznym za pomocą django social-auth?

http://localhost:8000/login/facebook/, 

pojawia się błąd mówiący

An error occurred. Please try again later. 

API Error Code: 191 
API Error Description: The specified URL is not owned by the application 
Error Message: Invalid redirect_uri: Given URL is not allowed by the Application configuration. 

wierzę, to dlatego, że domena jest localhost: 8000. Jak mogę to naprawić, aby móc logować się za pomocą Facebooka w moim środowisku programistycznym?

+1

Określ domenę niestandardową (używam myapp.com) podczas tworzenia aplikacji w Facebooku, a następnie dodać go do '/ etc/hosts file /' wskazując na swoim lokalnym komputerze '127,0. 0.1 myapp.com'. To zadziała – omab

+0

Nie jestem zaznajomiony z tym, jak dodać domenę do/etc/hosts /. Czy istnieje dobry link/samouczek, który poleciłbyś? – sharataka

+0

'człowiek gospodarze' ma wszystkie podstawowe informacje, to naprawdę nie jest skomplikowane, dodajesz nową linię w formacie' '. – omab

Odpowiedz

2

Właśnie widziałem odpowiedź na to podczas czytania dokumentacji Heroku/Facebook.

Aby to zrobić, musisz utworzyć drugą aplikację i połączyć ją z lokalnym hostem w celu przetestowania go lokalnie.

można znaleźć więcej informacji o tym tutaj: https://devcenter.heroku.com/articles/facebook#1-creating-a-development-facebook-app

+0

Skonfigurowałem ustawienia aplikacji Facebook jako URL witryny: http://127.0.0.1:8000/. Domena aplikacji: (pusta). Nie jestem tak pewny co do domeny aplikacji, ponieważ nic nie znalazłem w łączu na ten temat. Czy to jest poprawne? Kiedy próbuję zapisać domenę aplikacji: http://127.0.0.1:8000/, pojawia się komunikat "Domeny aplikacji: http://127.0.0.1:8000/ nie powinny zawierać informacji o protokole." Domeny aplikacji: http: //127.0.0.1:8000/ nie jest prawidłową domeną. " – sharataka

+0

Właśnie zmieniłem moją aplikację na http://127.0.0.1:8000 i działa dobrze (nie działa bez http) – Robyflc

2

Najprostszym rozwiązaniem znalazłem jest zmodyfikować plik hosts, aby nakłonić Facebook:

1/edytować plik hosts

  • Otwarte/etc/hosts
  • Dodaj tę linię na końcu: 127.0.0.1 dev.mydomain.com

2/W konsoli Facebooku dev (https://developers.facebook.com/apps/ *********)

  • Wybierz "Aplikacje testowe"> "Utwórz aplikację testową"
  • W "Ustawienia"> "Basic" > Dodaj domenę (dev.mydomain.com) do pola "Domeny aplikacji".

Zrobione!

cf: https://groups.google.com/forum/#!topic/django-social-auth/gB1D8ikgUwM