Moja aplikacja jest zaprojektowana w następujący sposób: Mam usługę sieciową (działającą na GAE, niezbyt odpowiednią do tego pytania) i dane zawarte w tej usłudze są udostępniane za pośrednictwem strony internetowej oraz aplikacji mobilnych i stacjonarnych.Jak autoryzować aplikacje mobilne u zewnętrznego dostawcy przez Oauth ALE Połącz się z moją usługą, a nie z trzecią stroną:
Obecnie użytkownik uwierzytelnia się na stronie internetowej za pomocą Google ClientLogin, a aplikacje uwierzytelniają/otrzymują upoważnienie za pośrednictwem wbudowanego dostawcy OEA GAE. (OAuth jest tutaj używany głównie do uwierzytelniania, moja aplikacja w rzeczywistości nie wykorzystuje żadnych danych zewnętrznych za pośrednictwem OAuth innych niż unikalny identyfikator i adres e-mail użytkownika).
Co chciałbym zrobić, to zwiększyć liczbę usług których użytkownicy mogą używać do logowania. Ze względu na skomplikowany czynnik aplikacji wydaje mi się, że potrzebuję OAuth. Ale nie mogę właściwie zrozumieć, jak powinien wyglądać ten przepływ.
Pozwala wziąć Facebook jako przykład. Gdy aplikacja mobilna przechodzi przez przepływ Oauth Facebooka i zdobywa token dostępu, to nie wystarczy - ponieważ to moja usługa, a nie aplikacja, która musi porozmawiać z Facebookiem, aby pobrać informacje kontaktowe i unikalny identyfikator użytkownika. Prowadzi mnie to do wniosku, że proces OAuth musi nastąpić w kontekście mojej usługi, a nie aplikacji mobilnej. Moja usługa staje się wtedy konsumentem, a Facebook dostawcą usługi Oauth, a usługa przechowuje token dostępu Oauth, dzieje się tak, gdy użytkownik skonfiguruje konto po raz pierwszy.
Jeśli to jest prawidłowe podejście, gdzie to pozostawia uwierzytelnienie dla aplikacji? Co się dzieje, gdy użytkownik ma już konto i instaluje nowe wystąpienie aplikacji mobilnej? Wyobrażam sobie także przechodzenie przez proces oauth, dopasowywanie danych uwierzytelniających do danych już przechowywanych przez moją usługę, a następnie wydawanie mojego "tokena dostępu" do aplikacji z usługi, aby autoryzować tę instancję aplikacji. Wydaje się zawiłe i hackish.
Jestem pewna, że nie mogę być jedyną osobą, która w rzeczywistości "pożycza" system konta trzeciej strony dla aplikacji mobilnej z zapleczem, ale ja naprawdę nie widzę, jaki jest właściwy sposób zrób to.
Czego nie widzę i/lub nie pojmując koncepcyjnie?
* Świerszcze * Mam wrażenie, że sformułowałem to pytanie niepoprawnie. Jeśli tak, proszę dać mi znać. W przeciwnym razie odpowiem na moje własne pytanie tutaj ... w końcu. – tempy