Wenn die One-Tap-Anmeldung Ihren Anforderungen entspricht, sollten Sie sie stattdessen verwenden. One Tap bietet eine aktualisierte Benutzererfahrung und andere Verbesserungen.

Android-Integrationsablauf

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Damit Sie Smart Lock für Passwörter in Ihre Android-App einbinden können, müssen Sie dem Start- und Anmeldevorgang Ihrer 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 Nutzererfahrung der Anwendung ab. Für die meisten Anwendungen wird jedoch der folgende Ablauf empfohlen. Anwendungen, die diesen Ablauf verwenden, bieten folgende Vorteile:

  • Vorhandene Nutzer Ihres Dienstes, die einen einzigen Anmeldedatenspeicher haben, werden sofort angemeldet. Sie gelangen direkt zur angemeldeten Ansicht, wenn sie die App öffnen.
  • Nutzer, die mehrere Anmeldedaten gespeichert haben oder die automatische Anmeldung deaktiviert haben, müssen nur auf ein Dialogfeld reagieren, bevor sie die angemeldete Ansicht der App aufrufen.
  • Nutzer, die keine gespeicherten Anmeldedaten haben oder sich noch nicht registriert haben, können mit einem einzigen Klick ihren Namen und ihre E-Mail-Adresse auswählen und werden automatisch an die Anmelde- oder Registrierungsansicht gesendet. Diese Informationen werden vorausgefüllt.
  • Wenn sich Nutzer abmelden, erfolgt keine erneute Anmeldung.

Diagramm der Smart Lock-Anmeldung

Anmeldedaten abrufen

  1. Wenn die App startet, rufe CredentialsClient.request() auf, wenn noch kein Nutzer angemeldet ist.
  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 die Anmeldedaten auszuwählen. 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 für die 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 deinem aktuellen Anmelde- oder Registrierungsvorgang manuell anmelden bzw. registrieren. Nachdem der Nutzer sich angemeldet hat, können Sie ihm die Möglichkeit geben, seine Anmeldedaten für den zukünftigen Abruf zu speichern (Schritt 5).

    Sie können Nutzern helfen, sich schneller und einfacher anzumelden oder zu registrieren, indem Sie Anmeldehinweise wie die E-Mail-Adresse des Nutzers abrufen. Der Nutzer kann den Hinweis auswählen und die Eingabe seiner Anmeldedaten überspringen. Wenn für Ihre Anwendung Nutzer zur Anmeldung aufgefordert werden, können Sie festlegen, dass Benachrichtigungen sofort nach dem Fehlschlagen der ersten Anmeldedaten abgerufen werden. Andernfalls können Sie warten, bis der Nutzer die Anmeldung oder den Registrierungsvorgang startet.

    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 Hinweiss mit einem vorhandenen Nutzer übereinstimmt, fülle das Anmeldeformular mit diesem aus und lasse den Nutzer das Passwort zum Anmelden eingeben.
    3. Wenn die User-ID des Hinweiss mit einem vorhandenen Nutzer übereinstimmt, fülle das Registrierungsformular mit der ID und dem Namen des Nutzers aus und lasse 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, erstelle das Credential-Objekt mit der E-Mail-Adresse des Nutzers als ID und gib 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 Sie die automatische Anmeldung deaktivieren, können Nutzer auch einfach zwischen Konten wechseln, z. B. zwischen Arbeitskonten und privaten Konten oder zwischen Konten auf gemeinsam verwendeten Geräten, ohne ihre Anmeldedaten noch einmal eingeben zu müssen.

Bereit, Smart Lock für Passwörter in Ihre App einzubinden? Einfach starten