Web Görünümü ile kullanıcı kimliklerini doğrulama

Bu belgede, Credential Manager API'nin WebView kullanan bir Android uygulamasıyla nasıl entegre edileceği açıklanmaktadır. Kimlik Bilgisi Yöneticisi, 1.12.0 sürümü ve sonraki sürümlerde android.webkit.WebView kitaplığında yerel olarak desteklenir.

Ön koşullar

WebView'da Credential Manager'ı kullanmak için aşağıdaki bağımlılıkları uygulama modülünüzün derleme komut dosyasına ekleyin:

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")
}

Ayrıca, dijital öğe bağlantısını kullanarak uygulamanızı, uygulamanızın sahibi olduğu bir web sitesiyle ilişkilendirmeniz gerekir. Daha fazla bilgi için dijital öğe bağlantısı ekleme başlıklı makaleye bakın.

WebKit kitaplığını kullanma

WebKit kitaplığını kullanmak için özellik desteğini kontrol edin ve ardından setWebAuthenticationSupport() işlevini çağırarak desteği etkinleştirin:

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 entegrasyonu

Web entegrasyonunu nasıl oluşturacağınızı öğrenmek için Şifresiz giriş için geçiş anahtarı oluşturma başlıklı makaleyi inceleyin. Demo sitesi kaynağına da başvurabilirsiniz.

Test ve dağıtım

Android uygulaması, web sayfası ve arka uç arasında doğru iletişimin sağlandığını doğrulamak için kontrollü bir ortamda akışın tamamını kapsamlı bir şekilde test edin.

Entegre çözümü üretime dağıtın ve arka ucun gelen kayıt ve kimlik doğrulama isteklerini işleyebildiğini doğrulayın. Arka uç kodu, kayıt (oluşturma) ve kimlik doğrulama (alma) işlemleri için ilk JSON'u oluşturmalıdır. Ayrıca, web sayfasından alınan yanıtların doğrulanması ve onaylanması da gerekir.

Uygulamanın kullanıcı deneyimi önerilerine uygun olduğunu doğrulayın.