2012-03-20 12 views
7

Zajmuję się tworzeniem aplikacji PhoneGap i wymagam od moich użytkowników logowania za pośrednictwem Google przy pomocy OAuth2. Czy jest to możliwe bezpośrednio przez JavaScript? Nie mam prawie żadnego doświadczenia z JavaScriptem (i jQuery).PhoneGap i OAuth2

Jakie są opcje? Zastanawiałem się nad kłopotliwą alternatywą polegającą na umieszczeniu nazwy użytkownika/hasła w aplikacji hostowanej na serwerze, która następnie zajmuje się logowaniem. Następnie aplikacja PhoneGap będzie musiała zapytać serwer, czy uwierzytelnienie zakończyło się powodzeniem. Miałem jednak nadzieję, że będzie prostszy sposób.

Jaki jest najlepszy sposób logowania się przez Google w aplikacji PhoneGap?

+0

poradnik Libby na ten temat jest prawdopodobnie najlepszym miejscem, aby rozpocząć: http://www.mobiledevelopersolutions.com/home/start/twominutetutorials/tmt5p1 –

Odpowiedz

8

Udało mi się sprawić, że działa! Zamieszczam tutaj moje przemyślenia, ponieważ trudno mi było znaleźć odpowiedź po wielu godzinach przeszukiwania sieci.

ważne kroki to:

  • Upewnij ChildBrowser działa prawidłowo
  • Konfiguracja funkcji, która będzie słuchać stronie zmienia window.plugins.childBrowser.onLocationChange = function(fooUrl) { console.log(fooUrl); }
  • Budowanie URL z ciąg kwerendy w sposób opisany w this tutorial
  • Point ChildBrowser do adresu URL
  • Po zalogowaniu się użytkownik będzie mógł O wyodrębnić tokenu sesji z fooUrl

Jeśli nadal nie wiem, jak to zrobić, zajrzyj na this Android app. (Jest dużo kodu, a to może wydawać się przytłaczająca, więc proponuję jechać tylko na to w ostateczności)

4

Google nie będzie można wykonać bezpośrednio przez obsługę uwierzytelniania poświadczeń użytkownika bezpośrednio. Zamiast tego Google chce, abyś wykonał protokół uwierzytelniania, zwykle OAuth 2.0. Inne popularne protokoły uwierzytelniania, o których możesz usłyszeć to OpenID 1.0, 2.0, OpenID Connect, SAML 2.0, ID-FF, itd. Te protokoły przekierują użytkownika do Dostawcy Tożsamości (w tym przypadku Google) i odsyłają Cię z asercja, której możesz użyć do zaufania użytkownikowi. Dzięki interfejsom API, takim jak Google, korzystasz z funkcji autoryzacji OAuth, która zapewnia token, którego możesz używać ze wszystkimi interfejsami Google API po uwierzytelnieniu.

Z PhoneGap i aplikacji mobilnych, rzeczy są nieco inne niż w typowej konfiguracji OAuth.

W twoim przypadku, przeglądarka jest w kontrolowanym środowisku, aplikacji, a może

  • wybierz przekierować użytkownika do punktu końcowego Google odpowiedzialnego za pomocą widoku głównym
  • wybierz, aby otworzyć a ChildBrowser z punktem końcowym Autoryzacja Google, aby nie utracić żadnego stanu w aplikacji.
  • , aby jakoś otworzyć Safari lub inną przeglądarkę z punktem końcowym autoryzacji i zarejestrować niestandardową procedurę obsługi schematu, aby przekierować użytkownika z powrotem do aplikacji po uwierzytelnieniu.

Te przykłady są niejasno wymienione w specyfikacjach OAuth 2.0, ale nie ma pomocy w tym, co jest najlepsze lub optymalne w konkretnym przypadku użycia. Często najlepsza z możliwych opcji nie jest idealna (z perspektywy użytkownika).

Niedawno napisałem samouczek, jak wykonać tę pracę z Phonegap i ChildBrowser na iOS.