Android-Integrationsablauf

Wenn Sie Smart Lock für Passwörter in Ihre Android-App einbinden möchten, müssen Sie dem Start- und Anmeldevorgang Ihrer App Aufrufe an die Credentials API hinzufügen. Das folgende Diagramm zeigt den Ablauf einer typischen Android-App, die Smart Lock für Passwörter verwendet.

Es gibt viele Möglichkeiten, Smart Lock für Passwörter erfolgreich zu integrieren, und die Besonderheiten einer Integration hängen von der Struktur und der Nutzererfahrung der App ab. Der folgende Ablauf wird für die meisten Apps jedoch empfohlen. Anwendungen, die diesen Ablauf verwenden, haben folgende Vorteile für die Nutzererfahrung:

  • Bestehende Nutzer Ihres Dienstes, die nur ein einziges Ausweisdokument gespeichert haben, werden sofort angemeldet und gelangen beim Öffnen der App direkt zur Anmeldeansicht.
  • Nutzer, die mehrere Anmeldedaten gespeichert oder die automatische Anmeldung deaktiviert haben, müssen nur auf ein einziges Dialogfeld reagieren, bevor sie die Anmeldeseite der Anwendung aufrufen.
  • Nutzer, die keine gespeicherten Anmeldedaten haben oder sich noch nicht registriert haben, können ihren Namen und ihre E-Mail-Adresse durch einmaliges Tippen auswählen und intelligent zur Anmelde- oder Anmeldeansicht weitergeleitet werden, wobei diese Informationen vorausgefüllt sind.
  • Wenn sich Nutzer abmelden, sorgt die Anwendung dafür, dass sie nicht automatisch wieder angemeldet werden.

Diagramm des Smart Lock-Anmeldevorgangs

Anmeldedaten abrufen

  1. Wenn die App gestartet wird und noch kein Nutzer angemeldet ist, rufen Sie CredentialsClient.request() auf.
  2. Wenn Task erfolgreich ist, rufen Sie die Anmeldedaten des Nutzers mit getResult().getCredential() ab und verwenden Sie sie für die Anmeldung.
  3. Wenn Task fehlschlägt und die Ausnahme eine Instanz von ResolvableApiException ist und getStatusCode() RESOLUTION_REQUIRED zurückgibt, ist eine Nutzereingabe erforderlich, um Anmeldedaten auszuwählen. Rufen Sie startResolutionForResult() auf, um den Nutzer aufzufordern, ein gespeichertes Konto auszuwählen. Rufen Sie dann getParcelableExtra(Credential.EXTRA_KEY) auf, um die Anmeldedaten des Nutzers abzurufen und sich damit anzumelden.

Anmeldedaten speichern

  1. Wenn Task mit einem ApiException fehlschlägt und getStatusCode() SIGN_IN_REQUIRED zurückgibt, hat der Nutzer keine gespeicherten Anmeldedaten und muss sich manuell über den aktuellen Anmelde- oder Registrierungsvorgang anmelden oder registrieren. Nachdem der Nutzer die Anmeldung erfolgreich abgeschlossen hat, kannst du ihm die Möglichkeit geben, seine Anmeldedaten zu speichern, damit sie später abgerufen werden können (Schritt 5).

    Sie können dem Nutzer helfen, sich schneller und einfacher anzumelden oder zu registrieren, indem Sie Anmeldehinweise abrufen, z. B. die E-Mail-Adresse des Nutzers. Der Nutzer kann den Hinweis auswählen und die Eingabe der Anmeldedaten überspringen. Wenn für Ihre Anwendung eine Anmeldung durch Nutzer erforderlich ist, können Sie Hinweise sofort nach dem Fehlschlagen der ersten Anmeldedatenanfrage abrufen. Andernfalls können Sie warten, bis der Nutzer den Anmelde- oder Registrierungsvorgang startet.

    1. Rufen Sie CredentialsClient.getHintPickerIntent() auf und starten Sie den Intent, um den Nutzer zur Auswahl eines Kontos aufzufordern. Rufen Sie dann getParcelableExtra(Credential.EXTRA_KEY) auf, um den Anmeldehinweis zu erhalten.
    2. Wenn die Nutzer-ID des Hinweises mit einem vorhandenen Nutzer übereinstimmt, füllen Sie das Anmeldeformular vorab aus und lassen Sie den Nutzer das Passwort eingeben, um sich anzumelden.
    3. Wenn die Nutzer-ID des Hinweises nicht mit einem vorhandenen Nutzer übereinstimmt, füllen Sie das Anmeldeformular mit der ID und dem Namen des Nutzers aus und lassen Sie den Nutzer ein neues Konto erstellen.
  2. Nachdem sich der Nutzer erfolgreich angemeldet oder ein Konto erstellt hat, speichern Sie die Nutzer-ID und das Passwort mit CredentialsClient.save().

    Wenn sich der Nutzer mit einem föderierten Identitätsanbieter wie Google Log-in angemeldet hat, erstellen Sie das Objekt Credential mit der E-Mail-Adresse des Nutzers als ID und geben Sie den Identitätsanbieter mit setAccountType an.

Abmelden

  1. Wenn sich der Nutzer abmeldet, rufen Sie CredentialsClient.disableAutoSignIn() auf, damit er nicht sofort wieder angemeldet wird. Wenn Sie die automatische Anmeldung deaktivieren, können Nutzer ganz einfach zwischen Konten wechseln, z. B. zwischen beruflichen und privaten Konten oder zwischen Konten auf gemeinsam verwendeten Geräten, ohne ihre Anmeldedaten noch einmal eingeben zu müssen.

Bist du bereit, Smart Lock für Passwörter in deine App zu integrieren? Einfach starten