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.
Anmeldedaten abrufen
- Wenn die App startet, rufe
CredentialsClient.request()
auf, wenn noch kein Nutzer angemeldet ist. - Wenn
Task
erfolgreich ist, rufen Sie die Anmeldedaten des Nutzers mitgetResult().getCredential()
ab und verwenden Sie sie für die Anmeldung. - Wenn
Task
fehlschlägt und die Ausnahme eine Instanz vonResolvableApiException
ist undgetStatusCode()
RESOLUTION_REQUIRED
zurückgibt, ist eine Nutzereingabe erforderlich, um die Anmeldedaten auszuwählen. RufestartResolutionForResult()
auf, um den Nutzer aufzufordern, ein gespeichertes Konto auszuwählen. Rufe danngetParcelableExtra(Credential.EXTRA_KEY)
auf, um die Anmeldedaten des Nutzers abzurufen und für die Anmeldung zu verwenden.
Anmeldedaten speichern
Wenn
Task
mit einemApiException
fehlschlägt undgetStatusCode()
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.
- Rufen Sie
CredentialsClient.getHintPickerIntent()
auf und starten Sie den Intent, um den Nutzer aufzufordern, ein Konto auszuwählen. Rufen Sie danngetParcelableExtra(Credential.EXTRA_KEY)
auf, um den Anmeldehinweis zu erhalten. - 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.
- 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.
- Rufen Sie
-
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 mitsetAccountType
an.
Abmelden
- 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