Jeśli logowanie jednym dotknięciem spełnia Twoje potrzeby, rozważ jego użycie. One Tap ma zaktualizowany interfejs użytkownika i inne ulepszenia.

Proces integracji Androida

Aby zintegrować funkcję Smart Lock na hasła z aplikacją na Androida, musisz dodać wywołania interfejsu API Credentials do procesu uruchamiania aplikacji i logowania się. Poniższy diagram przedstawia przepływ typowej aplikacji na Androida z Smart Lock na hasła.

Istnieje wiele sposobów na zintegrowanie funkcji Smart Lock na hasła. Szczegóły integracji zależą od struktury i wygody użytkownika aplikacji, jednak w przypadku większości aplikacji zalecamy wykonanie tej procedury. Aplikacje korzystające z tego przepływu mają następujące zalety:

  • Obecni użytkownicy usługi, którzy mają zapisane pojedyncze dane logowania, są od razu logowani i po otwarciu aplikacji przechodzą bezpośrednio do widoku logowania.
  • Użytkownicy, którzy zapisali wiele danych logowania lub wyłączyli automatyczne logowanie, muszą odpowiedzieć w jednym oknie dialogowym, zanim przejdą do widoku logowania aplikacji.
  • Użytkownicy, którzy nie mają zapisanych danych logowania lub nie są jeszcze zarejestrowani, mogą wybrać swoje imię i nazwisko oraz adres e-mail jednym kliknięciem oraz wyświetlać im widok logowania lub rejestracji z wypełnionymi informacjami.
  • Gdy użytkownik się wyloguje, aplikacja zapewnia, że nie zostanie automatycznie wylogowana.

Schemat procesu logowania w funkcji Smart Lock

Pobieranie danych logowania

  1. Jeśli po uruchomieniu aplikacji nie jest jeszcze zalogowany żaden użytkownik, wywołaj CredentialsClient.request().
  2. Jeśli Task się powiedzie, pobierz dane logowania użytkownika getResult().getCredential() i użyj go do zalogowania.
  3. Jeśli Task kończy się niepowodzeniem i wyjątek jest wystąpieniem ResolvableApiException, a getStatusCode() zwraca RESOLUTION_REQUIRED, dane logowania użytkownika są wymagane do wyboru danych logowania. Wywołaj startResolutionForResult(), aby poprosić użytkownika o wybranie zapisanego konta, a następnie wywołaj metodę getParcelableExtra(Credential.EXTRA_KEY), aby uzyskać dane logowania użytkownika i użyć go do zalogowania się.

Zapisz dane logowania

  1. Jeśli Task zakończy się niepowodzeniem za pomocą ApiException i getStatusCode() zwróci SIGN_IN_REQUIRED, użytkownik nie będzie mieć zapisanych danych logowania i będzie musiał się zalogować lub zarejestrować ręcznie za pomocą bieżącego procesu logowania lub rejestracji. Gdy użytkownik się zaloguje, możesz dać mu szansę na zapisanie danych logowania do pobrania w przyszłości (krok 5).

    Możesz pomóc użytkownikowi zalogować się szybciej lub łatwiej, pobierając wskazówki dotyczące logowania, takie jak adres e-mail użytkownika. Użytkownik może zaznaczyć podpowiedź i pominąć logowanie. Jeśli Twoja aplikacja wymaga od użytkowników logowania się, możesz pobrać wskazówki natychmiast po tym, jak nie uda się wysłać wstępnego żądania logowania (w przeciwnym razie możesz poczekać, aż użytkownik rozpocznie proces logowania lub rejestracji).

    1. Wywołaj CredentialsClient.getHintPickerIntent() i uruchom intencję, aby poprosić użytkownika o wybranie konta, a następnie getParcelableExtra(Credential.EXTRA_KEY), aby uzyskać wskazówki logowania.
    2. Jeśli identyfikator użytkownika podpowiedzi pasuje do istniejącego użytkownika, wypełnij wstępnie formularz logowania i wpisz hasło, aby się zalogować.
    3. Jeśli identyfikator użytkownika podpowiedzi nie pasuje do istniejącego użytkownika, wypełnij wstępnie formularz rejestracyjny przy użyciu identyfikatora i nazwy użytkownika, a następnie pozwól użytkownikowi utworzyć nowe konto.
  2. Gdy użytkownik się zaloguje lub utworzy konto, zapisz jego identyfikator i hasło w CredentialsClient.save().

    Jeśli użytkownik zalogował się przy użyciu sfederowanego dostawcy tożsamości, takiego jak Logowanie przez Google, utwórz obiekt Credential z identyfikatorem adresu e-mail użytkownika i określ dostawcę tożsamości za pomocą setAccountType.

Wyloguj się

  1. Gdy użytkownik się wyloguje, wywołaj numer CredentialsClient.disableAutoSignIn(), aby zapobiec natychmiastowemu wylogowaniu się użytkownika. Wyłączenie automatycznego logowania pozwala też użytkownikom łatwo przełączać się między kontami – na przykład między kontami służbowymi i osobistymi lub między kontami na współdzielonych urządzeniach – bez konieczności ponownego podawania danych logowania.

Chcesz wdrożyć w swojej aplikacji funkcję Smart Lock na hasła? W takim razie zaczynajmy.