In diesem Dokument wird beschrieben, wie Sie die Credential Manager API in eine Android-App einbinden, die WebView verwendet. Credential Manager wird nativ in der android.webkit.WebView-Bibliothek ab Version 1.12.0 unterstützt.
Voraussetzungen
Wenn Sie Credential Manager in WebView verwenden möchten, fügen Sie dem Build-Skript Ihres App-Moduls die folgenden Abhängigkeiten hinzu:
dependencies {
implementation("androidx.credentials:credentials:1.6.0-beta02")
implementation("androidx.credentials:credentials-play-services-auth:1.6.0-beta02")
implementation("androidx.webkit:webkit:1.14.0")
}
Außerdem müssen Sie Ihre App mithilfe der Verknüpfung digitaler Assets mit einer Website verknüpfen, die Ihnen gehört. Weitere Informationen finden Sie unter Verknüpfung von digitalen Assets hinzufügen.
WebKit-Bibliothek verwenden
Wenn Sie die WebKit-Bibliothek verwenden möchten, prüfen Sie, ob die Funktion unterstützt wird, und aktivieren Sie die Unterstützung dann durch Aufrufen von setWebAuthenticationSupport():
class WebViewActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val url = "https://passkeys-codelab.glitch.me/"
AndroidView(
factory = { context ->
WebView(context).apply {
settings.javaScriptEnabled = true
webViewClient = WebViewClientImpl()
}
},
update = { webView ->
run {
webView.loadUrl(url)
if (WebViewFeature.isFeatureSupported(WebViewFeature.WEB_AUTHENTICATION)) {
WebSettingsCompat.setWebAuthenticationSupport(
webView.settings,
WebSettingsCompat.WEB_AUTHENTICATION_SUPPORT_FOR_APP,
)
// Check if getWebauthenticationSupport may have been disabled by the WebView.
Log.e(
"WebViewPasskeyDemo",
"getWebAuthenticationSupport result: " + WebSettingsCompat.getWebAuthenticationSupport(
webView.settings
),
)
} else {
Log.e("WebViewPasskeyDemo", "WebView does not support passkeys.")
}
}
},
)
}
}
}
Web integration
Informationen zum Erstellen einer Webintegration finden Sie unter Passkey für die Anmeldung ohne Passwort erstellen. Sie können sich auch den Quellcode der Demowebsite ansehen.
Testen und Bereitstellen
Testen Sie den gesamten Ablauf gründlich in einer kontrollierten Umgebung, um die ordnungsgemäße Kommunikation zwischen der Android-App, der Webseite und dem Backend zu überprüfen.
Stellen Sie die integrierte Lösung in der Produktion bereit und prüfen Sie, ob das Backend eingehende Registrierungs- und Authentifizierungsanfragen verarbeiten kann. Der Backend-Code sollte das erste JSON für die Registrierung (create) und die Authentifizierung (get) generieren. Außerdem sollten die von der Webseite empfangenen Antworten validiert und überprüft werden.
Prüfen Sie, ob die Implementierung den UX-Empfehlungen entspricht.