Se l'accesso con un tocco soddisfa le tue esigenze, valuta la possibilità di utilizzarlo. One Tap offre un'esperienza utente aggiornata e altri miglioramenti.

Flusso di integrazione Android

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

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

  • Gli utenti esistenti del servizio a cui è stata salvata una singola credenziale accedono immediatamente e passeranno direttamente alla visualizzazione dell'accesso quando aprono l'app.
  • Gli utenti che hanno più credenziali salvate o che hanno disabilitato 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 la propria 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 siano automaticamente riaccessi.

Diagramma del flusso di accesso a Smart Lock

Recupera le credenziali

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

Salva le credenziali

  1. Se l' Task non riesce 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 di registrazione corrente. Dopo che l'utente ha completato correttamente l'accesso, è possibile fornire all'utente l'opportunità di salvare le proprie credenziali per il recupero futuro (passaggio 5).

    Puoi aiutare l'utente ad accedere o registrarsi più velocemente e più facilmente recuperando i suggerimenti di accesso, come l'indirizzo e-mail dell'utente. L'utente può selezionare il suggerimento e saltare la digitazione delle proprie credenziali. Se la tua app richiede che gli utenti accedano, potresti scegliere di recuperare i suggerimenti immediatamente dopo che la richiesta di credenziali iniziale non riesce (altrimenti, puoi attendere fino a quando l'utente non avvia il flusso di accesso o di registrazione).

    1. Chiama CredentialsClient.getHintPickerIntent() e avvia l'intento di richiedere all'utente di selezionare un account, quindi chiama getParcelableExtra(Credential.EXTRA_KEY) per ottenere il suggerimento di accesso.
    2. Se l'ID utente del suggerimento corrisponde a un utente esistente, precompila il modulo di accesso con esso e lascia che l'utente inserisca 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 correttamente l'accesso o ha creato un account, salvare l'ID utente e la password con CredentialsClient.save() .

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

disconnessione

  1. Quando l'utente si disconnette, chiama CredentialsClient.disableAutoSignIn() per impedire all'utente di essere immediatamente riconnesso. La disattivazione dell'accesso automatico consente inoltre agli utenti di passare facilmente da un account all'altro, ad esempio tra account di lavoro e account personali o tra account sui dispositivi condivisi, senza dover reinserire le informazioni di accesso.

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