Korzystanie z OAuth zarówno w środowiskach programistycznych, jak i produkcyjnych

Widziałem w tej sprawie inne pytania na temat SO (tutaj, tutaj, itutaj), ale nie jestem usatysfakcjonowany żadnym z rozwiązań, więc proszę o to ponownie. Uruchamiam aplikację internetową, która wykorzystuje uwierzytelnianie OAuth od wielu dostawców (Google, Facebook, Twitter, Yahoo). Usiłuję znaleźć konfigurację odpowiednią do użycia zarówno w lokalnym środowisku programistycznym, jak iw środowisku produkcyjnym.

Wiodące rozwiązania, które znalazłem, polegają na zarejestrowaniu wielu aplikacji w każdym dostawcy, otrzymaniu innego klucza klienta i tajemnicy dla każdego z nich:

„My App Production” - z identyfikatorem zwrotnym URI dohttp://www.myapp.com/callback

„My App Development” - z identyfikatorem URI wywołania zwrotnegohttp://local.myapp.com/callback

Dodaj wpis do lokalnego pliku hostów, aby wskazaćlocal.myapp.com do127.0.0.1 i pewna konfiguracja dla twojej aplikacji, aby korzystała z odpowiednich kluczy konsumenckich w oparciu o środowisko, i dobrze jest iść, prawda?

Ale moja aplikacja jestczuły i muszę przetestować moje środowisko programistyczne działające na moim komputerze z wielu innych urządzeń, takich jak mój iPhone i iPad, z których żaden nie będzie w stanie rozwiązać URI wywołania zwrotnego.

Powiedzmy, że mam już serwer DNS w mojej sieci i mogę dodać wpis dlalocal.myapp.com zamiast mojego lokalnego pliku hosts i mogę teraz uzyskać dostęp do mojej instancji programistycznej z dowolnego urządzenia w sieci.

Ale mój zespół programistów działa w tej samej sieci lokalnej. Terazlocal.myapp.com wskazuje na ten sam adres IP dla wszystkich. Wróćmy do ustawiania pliku hosts na komputerze każdego dewelopera, aby wszyscy mogli działać niezależnie od swojej stacji roboczej. Teraz nikt nie może ponownie przetestować swojej instancji programistycznej z iPhone'a. Wydaje się, że nie jest to właściwa odpowiedź dla każdego programisty, aby zarejestrować aplikację u dostawcy tylko po to, aby mogli określić unikalny identyfikator URI wywołania zwrotnego.

Zwykle, gdy przechodzę przez chwasty ze skomplikowanym rozwiązaniem dla pozornie prostego problemu, zazwyczaj oznacza to, że robię coś fundamentalnie złego. Czy brakuje mi czegoś o OAuth, czy nie ma być tak używane? Kusi mnie, aby całkowicie usunąć OAuth i po prostu przejść z OpenID (nie jest wymagana rejestracja aplikacji i może określić URI wywołania zwrotnego z poziomu aplikacji), ale potem tracę dwóch wielkich hity na Facebooku i Twitterze. Naprawdę nie potrzebuję żadnych danych użytkownika, miło jest mieć go, jeśli jest dostępny. Czy ktoś może mnie odezwać do OAuth?

questionAnswers(3)

yourAnswerToTheQuestion