Flusso di integrazione Android

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

Esistono molti modi per integrare correttamente Smart Lock per password e le specifiche di un'integrazione dipendono dalla struttura e dall'esperienza utente dell'app, ma il seguente flusso è consigliato per la maggior parte delle app. Le app che utilizzano questo flusso offrono i seguenti vantaggi in termini di esperienza utente:

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

Diagramma del flusso di accesso con Smart Lock

Recuperare le credenziali

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

Salva credenziali

  1. Se Task restituisce errori con ApiException e getStatusCode() restituisce SIGN_IN_REQUIRED, l'utente non ha credenziali salvate e deve accedere o registrarsi manualmente utilizzando il flusso di accesso o registrazione attuale. Dopo che l'utente ha completato l'accesso, puoi offrirgli la possibilità di salvare le proprie credenziali per recuperarle in futuro (passaggio 5).

    Puoi aiutare l'utente ad accedere o a registrarsi in modo più rapido e semplice recuperando i suggerimenti di accesso, ad esempio l'indirizzo email dell'utente. L'utente può selezionare il suggerimento e saltare la digitazione delle credenziali. Se la tua app richiede agli utenti di accedere, puoi scegliere di recuperare i suggerimenti immediatamente dopo che la richiesta delle credenziali iniziale non va a buon fine. In caso contrario, puoi attendere che l'utente avvii il flusso di accesso o di registrazione.

    1. Chiama CredentialsClient.getHintPickerIntent() e avvia l'intent a richiedere all'utente di selezionare un account, quindi chiama getParcelableExtra(Credential.EXTRA_KEY) per ricevere il suggerimento di accesso.
    2. Se l'ID utente del suggerimento corrisponde a un utente esistente, precompila il modulo di accesso con il suggerimento e consenti all'utente di inserire la password per accedere.
    3. Se l'ID utente 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 esce, chiama il numero CredentialsClient.disableAutoSignIn() per evitare che venga eseguito nuovamente l'accesso. 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 sui dispositivi condivisi, senza dover reinserire i dati di accesso.

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