Widziałem inne pytania na ten temat dotyczące tego (here, here i here), ale nie jestem zadowolony z żadnego rozwiązania, więc proszę o to ponownie. Rozpoczynam aplikację internetową, która będzie wykorzystywać OAuth od wielu dostawców (Google, Facebook, Twitter, Yahoo) do uwierzytelniania. Staram się znaleźć konfigurację odpowiednią do zastosowania zarówno w lokalnym środowisku programistycznym, jak iw środowisku produkcyjnym.Używanie OAuth do środowisk programistycznych i produkcyjnych
wiodącego rozwiązania znalazłem się zarejestrować wielu aplikacji w ramach każdego dostawcy, przyjmując inny klucz klienta i tajny dla każdego:
„My App produkcji” - o zwrotnej URI do http://www.myapp.com/callback
"My App Development" - o oddzwonienie URI do http://local.myapp.com/callback
Dodaj wpis do pliku hostów lokalnych wskazać local.myapp.com
do 127.0.0.1
i S konfiguracja dla twojej aplikacji do używania właściwych kluczy konsumenckich w oparciu o środowisko, i jesteś dobry, prawda?
Ale moja aplikacja to responsive i muszę przetestować środowisko programistyczne uruchomione 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ć identyfikatora URI wywołania zwrotnego wywołania.
Załóżmy, że mam już serwer DNS w mojej sieci i jestem w stanie dodać wpis dla local.myapp.com
zamiast mojego pliku lokalnego hosta i mam teraz 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. Teraz local.myapp.com
wskazuje na to samo IP dla wszystkich. Wróćmy do ustawienia pliku hosts na każdym komputerze programisty, aby wszyscy mogli pracować niezależnie od swojej stacji roboczej. Teraz nikt nie może ponownie przetestować ich instancji deweloperskiej na swoim iPhonie. Wydaje się, że nie jest to właściwa odpowiedź dla każdego programisty, aby zarejestrować aplikację u dostawcy, aby móc określić unikalny identyfikator UR zwrotnego.
Zwykle, gdy schodzę w chwasty ze skomplikowanym rozwiązaniem dla pozornie prostego problemu, zwykle oznacza to, że robię coś zasadniczo złego. Czy brakuje mi czegoś o OAuth, czy nie ma być tak używany? Skłaniam się do całkowitego zerwania OAuth i po prostu idę z OpenID (wymagana rejestracja aplikacji nie jest wymagana i można określić identyfikator URI zwrotnego z poziomu aplikacji), ale potem tracę dwóch dużych hakerów na Facebooku i Twitterze. Nie potrzebuję żadnych danych użytkownika, fajnie jest je mieć, jeśli są dostępne. Czy ktoś może odesłać mnie z powrotem do OAuth?
tylko do testowania, prawda? Dlaczego nie każda aplikacja internetowa ma być katalogiem wirtualnym? – codemonkeh
Nie podąża za tym, do czego zmierzasz. Czy możesz rozwinąć? – schmimd04
Czy kiedykolwiek znalazłeś rozwiązanie? Walczę z dokładnie tym samym; dostawcy oauth nie zezwalają na używanie symboli wieloznacznych, więc nie mogę mieć "alice.dev.myapp.com" i "bob.dev.myapp.com", ale jeśli wszyscy programiści dzielą się 'dev.myapp.com' nie wiem, jak wskazać tablety i telefony u właściwego programisty. Utworzenie punktu wejścia oauth na programistę wydaje się być jedynym sposobem. – mczepiel