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.
Recuperare le credenziali
- All'avvio dell'app, se nessun utente ha già eseguito l'accesso, chiama
CredentialsClient.request()
. - Se il
Task
ha esito positivo, 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 chiama il numerogetParcelableExtra(Credential.EXTRA_KEY)
per ottenere le credenziali dell'utente e utilizzarle per accedere.
Salva credenziali
Se
Task
restituisce errori conApiException
egetStatusCode()
restituisceSIGN_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.
- Chiama
CredentialsClient.getHintPickerIntent()
e avvia l'intent a 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 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.