Flusso di integrazione Android

Per integrare Smart Lock per password nell'app per Android, devi aggiungere chiamate all'API Credentials all'avvio e al flusso di accesso dell'app. Il seguente diagramma mostra il flusso di una tipica app Android che utilizza Smart Lock per password.

Sebbene esistano diversi modi per integrare correttamente Smart Lock per password e le specifiche di un'integrazione dipendono dalla struttura e dall'esperienza utente dell'app, il seguente flusso è consigliato per la maggior parte delle app. Le app che utilizzano questo flusso presentano i seguenti vantaggi relativi all'esperienza utente:

  • Gli utenti esistenti del tuo servizio che hanno una sola credenziale salvata vengono eseguiti immediatamente e accedono direttamente alla visualizzazione con cui hanno eseguito l'accesso quando aprono l'app.
  • Gli utenti con più credenziali salvate o con l'accesso automatico disattivato devono rispondere a una sola finestra di dialogo prima di accedere alla visualizzazione dell'app.
  • Gli utenti che non hanno credenziali salvate o che non si sono ancora registrati possono scegliere il loro nome e il loro indirizzo email con un solo tocco e essere inviati in modo intelligente alla vista di accesso o di registrazione, con queste informazioni precompilate.
  • Quando gli utenti si disconnettono, l'app garantisce che non venga eseguito di nuovo l'accesso automatico.

Diagramma del flusso di accesso di Smart Lock

Recupera le credenziali

  1. All'avvio dell'app, se nessun utente ha già eseguito l'accesso, chiama CredentialsClient.request().
  2. Se il tentativo di Task ha esito positivo, recupera le credenziali dell'utente con getResult().getCredential() e utilizzale per accedere.
  3. Se Task non riesce e l'eccezione è un'istanza di ResolvableApiException e getStatusCode() restituisce RESOLUTION_REQUIRED, l'input utente è necessario per scegliere una credenziale. Chiama startResolutionForResult() per chiedere all'utente di selezionare un account salvato, quindi chiama getParcelableExtra(Credential.EXTRA_KEY) per recuperare le credenziali dell'utente e utilizzale per accedere.

Salva credenziali

  1. Se Task non riesce con un ApiException e getStatusCode() restituisce SIGN_IN_REQUIRED, l'utente non ha credenziali salvate e deve registrarsi o registrarsi manualmente usando il flusso di accesso o registrazione attuale. Dopo che l'utente ha completato correttamente l'accesso, puoi offrirgli la possibilità di salvare le sue credenziali per il recupero futuro (passaggio 5).

    Puoi aiutare l'utente ad accedere o a registrarsi in modo più facile e veloce recuperando suggerimenti di accesso, come l'indirizzo email dell'utente. L'utente può selezionare il suggerimento e saltare l'operazione di digitazione delle credenziali. Se la tua app richiede l'accesso, puoi scegliere di recuperare i suggerimenti subito dopo che la richiesta delle credenziali iniziale non va a buon fine. In caso contrario, puoi attendere finché l'utente non avvia il flusso di accesso o registrazione.

    1. Chiama CredentialsClient.getHintPickerIntent() e inizia l'intento per richiedere all'utente di selezionare un account, quindi chiama getParcelableExtra(Credential.EXTRA_KEY) per ricevere il suggerimento di accesso.
    2. Se lo User-ID del suggerimento corrisponde a un utente esistente, precompila il modulo di accesso e consenti all'utente di inserire la password per accedere.
    3. Se lo User-ID del suggerimento non corrisponde a un utente esistente, precompila il modulo di registrazione con l'ID e il nome dell'utente e consenti all'utente di creare un nuovo account.
  2. Dopo che l'utente ha eseguito l'accesso o creato un account, salva l'ID utente e la password con CredentialsClient.save().

    Se l'utente ha eseguito l'accesso con un provider di identità federato come Accedi con Google, crea l'oggetto Credential con l'indirizzo email dell'utente come ID e specifica il provider di identità con setAccountType.

Esci

  1. Quando l'utente si disconnette, chiama CredentialsClient.disableAutoSignIn() per evitare che l'utente acceda di nuovo immediatamente. La disabilitazione dell'accesso automatico consente inoltre agli utenti di passare facilmente da un account all'altro, ad esempio, tra account di lavoro e personali o tra account su dispositivi condivisi, senza dover reinserire i dati di accesso.

Vuoi integrare Smart Lock per password nella tua app? Inizia.