Um Smart Lock für Passwörter in Ihre Android-App zu integrieren, 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. Die Besonderheiten einer Integration hängen von der Struktur und der Nutzererfahrung der App ab. Der folgende Ablauf wird für die meisten Apps empfohlen. Anwendungen, die diesen Ablauf verwenden, bieten der User Experience folgende Vorteile:
- Bestehende Nutzer Ihres Dienstes, für die nur ein einziges Ausweisdokument gespeichert ist, werden sofort angemeldet und gelangen direkt zur Ansicht für angemeldete Nutzer, wenn sie die App öffnen.
- Nutzer, die mehrere Anmeldedaten gespeichert oder die automatische Anmeldung deaktiviert haben, müssen nur auf ein Dialogfeld antworten, bevor sie die Ansicht für angemeldete Nutzer in 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 Registrierungsansicht weitergeleitet werden, wobei diese Informationen vorausgefüllt sind.
- Wenn sich Nutzer abmelden, werden sie nicht automatisch wieder angemeldet.
Anmeldedaten abrufen
- Wenn beim Start der App noch kein Nutzer angemeldet ist, rufen Sie
CredentialsClient.request()
auf. - Wenn der
Task
erfolgreich ist, rufen Sie die Anmeldedaten des Nutzers übergetResult().getCredential()
ab und melden Sie sich damit an. - Wenn
Task
fehlschlägt und die Ausnahme eine Instanz vonResolvableApiException
ist undgetStatusCode()
RESOLUTION_REQUIRED
zurückgibt, ist eine Nutzereingabe erforderlich, um Anmeldedaten auszuwählen. Rufen SiestartResolutionForResult()
auf, um den Nutzer aufzufordern, ein gespeichertes Konto auszuwählen. Rufen Sie danngetParcelableExtra(Credential.EXTRA_KEY)
auf, um die Anmeldedaten des Nutzers abzurufen und sich damit anzumelden.
Anmeldedaten speichern
Wenn
Task
mit einemApiException
fehlschlägt undgetStatusCode()
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, können Sie ihm die Möglichkeit geben, seine Anmeldedaten für einen späteren Abruf zu speichern (Schritt 5).Sie können dem Nutzer 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 eine Anmeldung durch Nutzer erforderlich ist, können Sie Hinweise sofort nach dem Fehlschlagen der ersten Anforderung von Anmeldedaten abrufen. Andernfalls können Sie warten, bis der Nutzer den Anmelde- oder Registrierungsvorgang startet.
- Rufen Sie
CredentialsClient.getHintPickerIntent()
auf und starten Sie den Intent, um den Nutzer zur Auswahl eines Kontos aufzufordern. Rufen Sie danngetParcelableExtra(Credential.EXTRA_KEY)
auf, um den Anmeldehinweis zu erhalten. - Wenn die Nutzer-ID im Hinweis mit einem vorhandenen Nutzer übereinstimmt, füllen Sie das Anmeldeformular vorab aus und lassen Sie den Nutzer das Passwort eingeben, um sich anzumelden.
- Wenn die Nutzer-ID des Hinweises mit keinem 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.
- Rufen Sie
-
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 über einen föderierten Identitätsanbieter wie Google Log-in angemeldet hat, erstellen Sie das
Credential
-Objekt mit der E-Mail-Adresse des Nutzers als ID und geben Sie den Identitätsanbieter mitsetAccountType
an.
Abmelden
- Wenn sich der Nutzer abmeldet, solltest du
CredentialsClient.disableAutoSignIn()
aufrufen, um zu verhindern, dass er sofort wieder angemeldet wird. Wenn die automatische Anmeldung deaktiviert ist, können Nutzer ganz 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.
Bist du bereit, Smart Lock für Passwörter in deine App zu integrieren? Einfach starten