Android-Integrationsablauf

Wenn Sie Smart Lock für Passwörter in Ihre Android-App einbinden möchten, müssen Sie der Start- und Anmeldung der App Aufrufe für 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. Die Details einer Integration hängen von der Struktur und der Nutzerfreundlichkeit der App ab. Für die meisten Apps wird jedoch der folgende Ablauf empfohlen. Anwendungen, die diesen Ablauf verwenden, bieten folgende Vorteile:

  • Vorhandene Nutzer Ihres Dienstes, für die nur ein Anmeldedaten gespeichert ist, werden sofort angemeldet und gelangen direkt zur angemeldeten Ansicht, wenn sie die App öffnen.
  • Nutzer, die mehrere Anmeldedaten gespeichert haben oder die die automatische Anmeldung deaktiviert haben, müssen nur auf ein Dialogfeld reagieren, bevor sie die Anmeldeansicht der App aufrufen können.
  • 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 an die Anmelde- oder Registrierungsansicht gesendet werden. Diese Informationen werden vorausgefüllt.
  • Wenn sich Nutzer abmelden, sorgt die App dafür, dass sie nicht automatisch wieder angemeldet werden.

Diagramm der Smart Lock-Anmeldung

Anmeldedaten abrufen

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

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 mit Ihrer aktuellen Anmeldung oder Registrierung manuell anmelden oder registrieren. Nachdem der Nutzer die Anmeldung erfolgreich abgeschlossen hat, können Sie ihm die Möglichkeit geben, seine Anmeldedaten für später abzurufen (Schritt 5).

    Sie können der Nutzer bei der schnelleren und einfacheren Anmeldung helfen, indem Sie Hinweise für die Anmeldung abrufen, z. B. die E-Mail-Adresse des Nutzers. Der Nutzer kann den Hinweis auswählen und die Eingabe der Anmeldedaten überspringen. Wenn sich Nutzer in Ihrer App anmelden müssen, können Sie Hinweise nach dem Fehlschlagen der ersten Anfrage anfordern. Andernfalls können Sie warten, bis der Nutzer die Anmeldung oder Registrierung gestartet hat.

    1. Rufen Sie CredentialsClient.getHintPickerIntent() auf und starten Sie den Intent, um den Nutzer aufzufordern, ein Konto auszuwählen. Rufen Sie dann getParcelableExtra(Credential.EXTRA_KEY) auf, um den Anmeldehinweis zu erhalten.
    2. Wenn die User-ID des Hinweises mit einem vorhandenen Nutzer übereinstimmt, füllen Sie das Anmeldeformular mit diesem aus und bitten Sie den Nutzer, das Passwort einzugeben, um sich anzumelden.
    3. Wenn die User-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, speichere die Nutzer-ID und das Passwort mit CredentialsClient.save().

    Wenn sich der Nutzer bei 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, rufe CredentialsClient.disableAutoSignIn() auf, um zu verhindern, dass der Nutzer sofort wieder angemeldet wird. Wenn die automatische Anmeldung deaktiviert ist, können Nutzer auch einfach zwischen Konten wechseln, z. B. zwischen Arbeits- und privaten Konten oder zwischen Konten auf gemeinsam verwendeten Geräten, ohne ihre Anmeldedaten noch einmal eingeben zu müssen.

Möchten Sie Smart Lock für Passwörter in Ihre App einbinden? Einfach starten