Proces integracji Androida

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

Istnieje wiele sposobów na zintegrowanie Smart Lock na hasła, a sposób integracji zależy od struktury i wygody użytkownika aplikacji. Jednak w przypadku większości z nich zalecamy ten proces. Aplikacje, które korzystają z tego procesu, mają następujące zalety:

  • Obecni użytkownicy usługi, którzy mają zapisane pojedyncze dane logowania, są od razu zalogowani i otwierają aplikację bezpośrednio po otwarciu.
  • Użytkownicy, którzy mają zapisanych wiele danych logowania lub wyłączą automatyczne logowanie, muszą odpowiedzieć na jedno okno, zanim przejdą do widoku logowania w aplikacji.
  • Użytkownicy, którzy nie mają zapisanych danych logowania lub nie mają jeszcze zarejestrowanych kont, mogą jednym kliknięciem wybrać swoją nazwę użytkownika i adres e-mail, a następnie rozsądnie przekierować ich do widoku logowania lub rejestracji, gdzie zostaną wstępnie wypełnione te informacje.
  • Gdy użytkownik się wyloguje, aplikacja zapewnia, że nie zostanie ona automatycznie wylogowana.

Schemat procesu logowania przez Smart Lock

Pobieranie danych logowania

  1. Jeśli po uruchomieniu aplikacji nikt nie jest jeszcze zalogowany, wywołaj numer CredentialsClient.request().
  2. Jeśli Task się uda, pobierz dane logowania użytkownika za pomocą getResult().getCredential() i użyj ich do zalogowania.
  3. Jeśli Task się nie powiedzie, a wyjątek jest wystąpieniem elementu ResolvableApiException, a getStatusCode() zwraca wartość RESOLUTION_REQUIRED, dane logowania użytkownika są wymagane do wybrania danych logowania. Wywołaj polecenie startResolutionForResult(), aby poprosić użytkownika o wybranie zapisanego konta, a potem wywołaj metodę getParcelableExtra(Credential.EXTRA_KEY), aby uzyskać dane logowania użytkownika i użyć go do zalogowania.

Zapisz dane logowania

  1. Jeśli Task kończy się niepowodzeniem za pomocą ApiException i getStatusCode() zwraca SIGN_IN_REQUIRED, użytkownik nie ma zapisanych danych logowania i musi się zalogować lub zarejestrować ręcznie za pomocą bieżącego procesu logowania lub rejestracji. Gdy użytkownik się zaloguje, możesz umożliwić mu zapisanie danych logowania na potrzeby pobierania w przyszłości (krok 5).

    Możesz ułatwić użytkownikom logowanie się lub rejestrację szybciej, pobierając wskazówki logowania, takie jak adres e-mail użytkownika. Użytkownik może ją kliknąć i pominąć wpisywać dane logowania. Jeśli aplikacja wymaga od użytkowników zalogowania się, możesz pobrać wskazówki natychmiast po nieudanym żądaniu logowania. W przeciwnym razie możesz poczekać, aż użytkownik rozpocznie proces logowania lub rejestracji.

    1. Wywołaj CredentialsClient.getHintPickerIntent() i zacznij wyświetlać użytkownikowi prośbę o wybranie konta, a następnie wywołaj getParcelableExtra(Credential.EXTRA_KEY), by uzyskać wskazówkę na temat logowania.
    2. Jeśli identyfikator użytkownika podpowiedzi pasuje do istniejącego użytkownika, wypełnij formularz logowania i pozwól użytkownikowi wpisać hasło, aby się zalogować.
    3. Jeśli identyfikator podany w przypadku podpowiedzi nie pasuje do istniejącego użytkownika, wypełnij wstępnie formularz rejestracyjny o identyfikatorze i nazwie użytkownika, a następnie utwórz 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 adresem e-mail użytkownika jako identyfikator i określ dostawcę tożsamości za pomocą atrybutu setAccountType.

Wyloguj się

  1. Gdy użytkownik się wyloguje, wywołaj funkcję CredentialsClient.disableAutoSignIn(), aby zapobiec natychmiastowemu wylogowaniu użytkownika. Wyłączenie automatycznego logowania zapewnia też użytkownikom łatwe przełączanie się między kontami (np. osobistymi w pracy lub kontami na współdzielonych urządzeniach) bez konieczności ponownego wpisywania danych logowania.

Chcesz zintegrować Smart Lock na hasła z aplikacją? W takim razie zaczynajmy.