android-components/components/feature/webauthn
harvey186 868ab5a098 v122 2024-02-20 09:43:31 +01:00
..
build v122 2024-02-20 09:43:31 +01:00
src first commit 2023-11-28 09:10:03 +01:00
README.md first commit 2023-11-28 09:10:03 +01:00
build.gradle first commit 2023-11-28 09:10:03 +01:00
proguard-rules.pro first commit 2023-11-28 09:10:03 +01:00

README.md

Android Components > Feature > WebAuthn

A feature that provides WebAuthn functionality for supported engines.

Usage

Add the feature to the Activity/Fragment:

val webAuthnFeature = WebAuthnFeature(
    engine = GeckoEngine,
    activity = requireActivity()
)

Note: If the feature is on the fragment, ensure that onActivityResult calls from the activity are forwarded to the fragment.

Allow the feature to consume the onActivityResult data:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
   webAuthFeature.onActiviyResult(requestCode, data, resultCode)
}

As with other features in Android Components, WebAuthnFeature implements LifecycleAwareFeature, so it's recommended to use ViewBoundFeatureWrapper to handle the lifecycle events of the feature:

private val webAuthnFeature = ViewBoundFeatureWrapper<WebAuthnFeature>()

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
    webAuthnFeature.set(
        feature = WebAuthnFeature(
            engine = GeckoEngine,
            activity = requireActivity()
        ),
        owner = this,
        view = view
    )
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    webAuthnFeature.onActivityResult(requestCode, data, resultCode) }
}

Setting up the dependency

Use Gradle to download the library from maven.mozilla.org (Setup repository):

implementation "org.mozilla.components:feature-webauthn:{latest-version}"

License

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/