2011-07-14 16 views
6

Zajmuję się tworzeniem aplikacji dla Androida, która będzie miała api-podobną stronę serwera. Ta aplikacja będzie zawierała mechanizmy logowania użytkowników. Chcę używać konta google/fb/twitter jako informacji logowania, ponieważ aplikacja jest bardzo trafiona społecznie.Używanie konta Google jako logowania ... co dalej?

Przeczytałem już o używaniu konta Google zapisanego w telefonie jako weryfikacji użytkownika (Howto use Google Accounts as login). Problem polega na tym, że nie wiem, co robić? Jak zrozumiałem, Account Manager dostarczy mi wreszcie tokena. Więc co mam z tym zrobić? Jak poinformować stronę serwera, że ​​użytkownik zalogował się? Jak przechowywać ten token, ponieważ zrozumiałem, że token może się zmienić po unieważnieniu po pewnym czasie ...

I jeszcze jedno. Co mam zrobić, gdy użytkownik wejdzie na swoje konto G po raz pierwszy? Chcę uzyskać jego awatar i nazwę wyświetlaną, na przykład i zapisać je na serwerze, oszczędzając w ten sposób użytkownikowi kilka kliknięć? Czy wysyłam je w jakiś sposób z telefonu lub otrzymuję je w jakiś sposób z serwera?

Te same pytania mogą pojawić się również w przypadku FB.

Nadzieja zrobiłem prawidłowo zadać moje pytanie, jak to jest trochę bardziej ogólne pytanie ...

TIA.

Odpowiedz

1

Google używa OpenId, podczas gdy FB ma swoje własne. Będziesz potrzebował różnych ścieżek dla tych dwóch.

http://www.sozkan.com/blog/2010/09/24/very-quick-openid-integration-tutorial/

prawda - ten opiera się na adresach URL do zarządzania danymi - trzeba owinąć to w kodzie, jeśli chcesz to wszystko się zdarzyć wewnętrznie. Gdy masz token można powiadomić swój kod po stronie serwera, co to jest długości życia itp

informacji na temat różnic: http://thenextweb.com/socialmedia/2010/11/04/facebook-connect-oauth-and-openid-the-differences-and-the-future/

+0

Pytanie brzmiało dokładnie, jaka jest procedura dla aplikacji klient-serwer. W przypadku aplikacji internetowej to pytanie nie trwa, ponieważ jedyna praca jest wykonywana w jednym miejscu. Oto kolejna sytuacja - użytkownik jest uwierzytelniany na KLIENTA, a SERVER nie jest jeszcze tego świadomy. Jak więc właściwie powiadomić go, że użytkownik jest uwierzytelniony przy użyciu określonych poświadczeń i jak to wszystko zweryfikować itd.? – Djumaka

+0

Użytkownik uwierzytelniłby się za pośrednictwem KLIENTA i powiadomi SERVER, gdy uzyska się zezwolenie - LUB - zrobiłbyś to na odwrót - poproś klienta, aby uwierzytelnił serwer, a następnie wyślij wynik do klienta. Większość języków serwerów (PHP, JAVA, Perl itp.) Obsługuje komunikację internetową (np. Curl), więc jest to jedna z metod uwierzytelniania. Google może również zaoferować również obsługę SOAP. – ethrbunny

+0

Głosowałem za odrzuceniem, ponieważ samodzielne wysyłanie adresów URL ręcznie, replikuje zachowanie AccountManager, I wyrzuca listę kont zalogowanych na Androida. – Phlip

2

myślę this question obejmuje co dokładnie pytasz.

Dla mnie najlepsze rozwiązanie zostało zamieszczone w poście na blogu this. Będzie działać tylko z kontami Google i zakłada, że ​​korzystasz z UserService po stronie AppEngine, ale myślę, że działa dobrze. Mam nadzieję, że to pomoże.

0

Wystarczy, aby zakończyć ten (nieświeży) pytanie i zaparkować fragment kodu gdzieś, zacząłem logować się z Google przy użyciu PreferenceScreen aktywny z tym kodem onCreate():

ArrayList<String> list = new ArrayList<String>(); 
    list.add("https://www.googleapis.com/auth/userinfo.profile"); 
    final GoogleAccountCredential credential = 
     GoogleAccountCredential.usingOAuth2(getApplicationContext(), list); 
    Preference acctValue = findPreference("GMail"); // A <Preference> in the XML... 

    acctValue.setOnPreferenceClickListener(new OnPreferenceClickListener(){ 
     @Override 
     public boolean onPreferenceClick(Preference preference) { 
      startActivityForResult(credential.newChooseAccountIntent(), 1); 
      return false; 
     } 
    }); 

A oni wymagane dodanie tych zacienionych znaków do mojego folderu libs:

google-api-client-android-1.17.0-rc.jar 
google-play-services.jar 
google-api-client-1.17.0-rc.jar 
google-http-client-1.17.0-rc.jar 
Powiązane problemy