Buduję aplikację w języku Python, która musi komunikować się z dostawcą usług OAuth. SP wymaga, abym określił URL wywołania zwrotnego. Podanie oczywiście hosta lokalnego nie będzie działać. Nie mogę skonfigurować serwera publicznego. Jakieś pomysły poza płaceniem za serwer/hosting? Czy to możliwe?Jak rozwijać się lokalnie na OAuth?
Odpowiedz
To może pomóc:
http://www.marcworrell.com/article-2990-en.html
To php więc powinno być całkiem proste do skonfigurowania na serwerze dev.
Próbowałem ten jeden raz:
To całkiem proste. Masz link do pobrania kodu u dołu.
dwie rzeczy:
OAuth Service Provider w kwestii narusza spec OAuth czy to daje błąd, jeśli nie podasz adresu URL wywołania zwrotnego. callback_url to spec'd to be an OPTIONAL parameter.
Ale na bok, prawdopodobnie chcesz uzyskać wywołanie zwrotne, gdy użytkownik skończy, aby wiedzieć, że możesz wymienić Żeton żądania na token dostępu. Yahoo's FireEagle developer docs mają wiele świetnych informacji, jak to zrobić.
Nawet w drugim przypadku URL zwrotny wcale nie musi być widoczny z Internetu. Dostawca usług OAuth przekieruje przeglądarkę, której używa użytkownik, aby podać swoją nazwę użytkownika/hasło do adresu zwrotnego adresu URL.
Dwa powszechne sposoby osiągnięcia tego celu to:
- Tworzenie niemego usługę internetową z poziomu aplikacji, który nasłuchuje na jakimś porcie (powiedzmy, http://localhost:1234/) dla zwrotnego zakończeniem lub
- Zarejestruj protokół handler (będziesz musiał sprawdzić w dokumentacji dla twojego systemu operacyjnego, w szczególności, jak to zrobić, ale umożliwia działanie takich rzeczy, jak < a href = "skype: 555-1212" >).
(Przykładem przepływu, że wierzę jesteś opisujące lives here).
Można by utworzyć 2 Aplikacje? 1 do wdrożenia, a drugi do testowania.
Alternatywnie, możesz również uwzględnić parametr oauth_callback, gdy żądasz tokenu żądania. Niektórzy dostawcy przekierowują się do adresu URL określonego przez oauth_callback (np. Twitter, Google), ale niektórzy zignorują ten URL wywołania zwrotnego i przekierowują go do podanego podczas konfiguracji (np.Yahoo)
Było to na Facebooku OAuth - w rzeczywistości było w stanie określić "http://127.0.0.1:8080" jako adres URL witryny i URL wywołania zwrotnego. Zajęło to kilka minut, zanim zmiany w aplikacji na Facebooku się rozprzestrzeniły, ale potem zadziałało.
W przypadku korzystania * System stylu nix utworzyć alias jak 127.0.0.1 mywebsite.dev
w /etc/hosts
(trzeba mieć linię, która jest podobna do wyżej wymienionych w pliku Użyj http://website.dev/callbackurl/for/app
w oddzwaniania URL i podczas testowania lokalnego.
Windows ma również plik hosts. W systemie Windows 7 jest to w 'C: \ Windows \ System32 \ drivers \ etc \ hosts' –
W jaki sposób rozwiązałem ten problem (używając interfejsu OAuth BitBucket), podałem adres URL wywołania zwrotnego do localhost (lub czegokolwiek, do cholery, którego naprawdę potrzebujesz), a następnie podążając za autoryzowanym adresem URL z curl, ale z niespodziewanym zwrotem HTTP Przykład:
curl --user BitbucketUsername:BitbucketPassword -sL -w "%{http_code} %{url_effective}\\n" "AUTH_URL" -o /dev/null
Wkładanie dla twoich danych uwierzytelniających i adresu URL autoryzacji (pamiętaj, aby uciec od wykrzyknika!).
Co powinieneś otrzymać coś takiego:
200 http://localhost?dump&oauth_verifier=OATH_VERIFIER&oauth_token=OATH_TOKEN
I można zeskrobać oath_verifier z tego.
robi to samo w Pythonie:
import pycurl
devnull = open('/dev/null', 'w')
c = pycurl.Curl()
c.setopt(pycurl.WRITEFUNCTION, devnull.write)
c.setopt(c.USERPWD, "BBUSERNAME:BBPASSWORD")
c.setopt(pycurl.URL, authorize_url)
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.perform()
print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
Mam nadzieję, że jest to przydatne dla kogoś!
Ograniczeniem tego (przynajmniej w przypadku BitBucket) jest to, że musisz odwiedzić adres URL, aby zaakceptować kliknięcie przynajmniej na początku. A potem myślę, że pamięta twoje referencje. –
- 1. AVAssetExportSession przestaje się rozwijać
- 2. Facebook login - jak rozwijać się zarówno na serwerze lokalnym, jak i na produkcji?
- 3. Jak się rozwijać, aby skorzystać z systemów 64-bitowych?
- 4. jaki aspekt rozwijać najpierw na stronie internetowej?
- 5. Jak przechowywać dane lokalnie openstreetmap na iPhonie
- 6. Testowanie HTTPS na Sinatrze lokalnie
- 7. Intellij plugin rozwijać książkę
- 8. Jak ciężko jest rozwijać iPhone'a/iPada?
- 9. logowanie do facebook'a za pomocą oauth kończy się niepowodzeniem na serwerze na żywo
- 10. Przechowywanie danych lokalnie na iPhone
- 11. Jak testować i rozwijać przy pomocy asm.js?
- 12. Jak rozwijać pasek postępu poziomo w javafx?
- 13. Jak uruchomić Postgresa lokalnie
- 14. Jak hostować OpenStreetMap Lokalnie
- 15. Serwer WWW Heroku nie uruchamia się lokalnie
- 16. Jak działa system OAuth na Twitterze?
- 17. Czy wersje "Express" Microsoft SQL Server mogą się rozwijać?
- 18. Jak sprawdzić lokalnie połączenie socket.io?
- 19. Jak mogę używać Git lokalnie?
- 20. Niezastosowanie się odzyskać OAuth 2.0 token dostępu na android emulator
- 21. Jak przywrócić lokalnie usunięty folder?
- 22. Python: Używanie xpath lokalnie/na konkretnym elemencie
- 23. Jak odzyskać `.git/index` lokalnie?
- 24. Jak uruchomić lokalnie dokumentację angulary
- 25. Oauth 2 na aplikacji Android
- 26. Czy mogę naprawdę rozwijać na ASP.NET MVC za darmo?
- 27. Wiosna OAuth2 - strona zwyczaj „OAuth Zatwierdzenie” na OAuth/autoryzować
- 28. rozwijać C#/.NET na urządzenia z systemem Android
- 29. Jak przechowywać kod SQLcipher lokalnie
- 30. Używanie Google oAuth na WP7
Rzeczywiście. 'localhost' nie będzie działać, ale' 127.0.0.1' będzie. –