Per integrare Smart Lock per password nella tua app per Android, devi aggiungere chiamate all'API Credenziali al flusso di avvio e accesso della tua 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 servizio che hanno salvato un'unica credenziale hanno eseguito l'accesso immediatamente e passeranno direttamente alla visualizzazione per cui è stato eseguito l'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 dell'app con accesso eseguito.
- Gli utenti che non hanno credenziali salvate o non si sono ancora registrati possono scegliere il proprio nome e l'indirizzo email con un solo tocco ed essere inviati in modo intelligente alla visualizzazione di accesso o registrazione, con queste informazioni precompilate.
- Quando gli utenti si disconnettono, l'app assicura che non venga eseguito di nuovo automaticamente l'accesso.
Recupera le credenziali
- All'avvio dell'app, se nessun utente ha già eseguito l'accesso, chiama
CredentialsClient.request()
. - Se l'
Task
va a buon fine, recupera le credenziali dell'utente congetResult().getCredential()
e utilizzale per accedere. - Se
Task
ha esito negativo e l'eccezione è un'istanza diResolvableApiException
egetStatusCode()
restituisceRESOLUTION_REQUIRED
, l'input utente è necessario per scegliere una credenziale. ChiamastartResolutionForResult()
per richiedere all'utente di selezionare un account salvato, quindi chiamagetParcelableExtra(Credential.EXTRA_KEY)
per ottenere le credenziali dell'utente e utilizzarle per accedere.
Salva credenziali
Se
Task
restituisce un errore conApiException
egetStatusCode()
restituisceSIGN_IN_REQUIRED
, l'utente non ha credenziali salvate e deve accedere o registrarsi manualmente utilizzando il tuo flusso di accesso o registrazione attuale. Dopo che l'utente ha completato l'accesso, puoi offrirgli l'opportunità di salvare le sue 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 iniziale delle credenziali non va a buon fine (in caso contrario, puoi attendere fino a quando l'utente non avvia il flusso di accesso o di registrazione).
- Chiama
CredentialsClient.getHintPickerIntent()
e avvia l'intent per richiedere all'utente di selezionare un account, quindi chiamagetParcelableExtra(Credential.EXTRA_KEY)
per ricevere il suggerimento di accesso. - 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.
- 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.
- Chiama
-
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à consetAccountType
.
Esci
- Quando l'utente si disconnette, chiama
CredentialsClient.disableAutoSignIn()
per evitare che venga subito eseguito di nuovo l'accesso. La disattivazione dell'accesso automatico consente inoltre agli utenti di passare facilmente da un account di lavoro all'altro, ad esempio da un account di lavoro a un account personale o da un account su dispositivi condivisi, senza dover reinserire i dati di accesso.
Vuoi integrare Smart Lock per password nella tua app? Inizia.