Skip to content

Provides a cross-platform implementation of biometric authentication. Continuation of the abandoned Plugin.Fingerprint in the MAUI ecosystem.

License

MIT, MS-PL licenses found

Licenses found

MIT
LICENSE
MS-PL
ORIGINAL_LICENSE
Notifications You must be signed in to change notification settings

oscoreio/Maui.Biometric

Repository files navigation

Maui.Biometric

Nuget package CI/CD License: MIT

Provides a cross-platform implementation of biometric authentication.
Supports iOS, macOS, Android and Windows.
Continuation of the abandoned Plugin.Fingerprint in the MAUI ecosystem.

Usage

  • Add NuGet package to your project:
<PackageReference Include="Oscore.Maui.Biometric" Version="1.0.0" />
  • iOS - Add NSFaceIDUsageDescription to your Info.plist to describe the reason your app uses Face ID. (see Documentation). Otherwise the App will crash when you start a Face ID authentication on iOS 11.3+.
<key>NSFaceIDUsageDescription</key>
<string>Need your face to unlock secrets!</string>
  • Android - Request the permission in AndroidManifest.xml
<uses-permission android:name="android.permission.USE_FINGERPRINT" android:maxSdkVersion="27" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" android:minSdkVersion="28" />
  • Add the following to your MauiProgram.cs CreateMauiApp method:
builder
    .UseMauiApp<App>()
+   .UseBiometricAuthentication()
    .ConfigureFonts(fonts =>
    {
        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
        fonts.AddFont("OpenSans-Sed:nammibold.ttf", "OpenSansSemibold");
    });
  • Use through BiometricAuthentication.Current or using IBiometricAuthentication from DI:
var result = await BiometricAuthentication.Current.AuthenticateAsync(
    new AuthenticationRequest(
        title: "Prove you have fingers!",
        reason: "Because without it you can't have access"));
if (result.Authenticated)
{
    // do secret stuff :)
}
else
{
    // not allowed to do secret stuff :(
}

Testing on Simulators

iOS

Controlling the sensor on the iOS Simulator

With the Hardware menu you can

  • Toggle the enrollment status
  • Trigger valid ( M) and invalid ( N) fingerprint sensor events

Android

  • start the emulator (Android >= 6.0)
  • open the settings app
  • go to Security > Fingerprint, then follow the enrollment instructions
  • when it asks for touch
  • open command prompt
  • telnet 127.0.0.1 <emulator-id> (adb devices prints "emulator-<emulator-id>")
  • finger touch 1
  • finger touch 1

Sending fingerprint sensor events for testing the plugin can be done with the telnet commands, too.

Note for Windows users: You have to enable telnet: Programs and Features > Add Windows Feature > Telnet Client

Links

Legal information and credits

It was forked from the xamarin-fingerprint project.
xamarin-fingerprint is a project by Sven-Michael Stübe.
It was licensed under the MS-PL license.
This fork changes the license to MIT with attribution to the original license.

About

Provides a cross-platform implementation of biometric authentication. Continuation of the abandoned Plugin.Fingerprint in the MAUI ecosystem.

Topics

Resources

License

MIT, MS-PL licenses found

Licenses found

MIT
LICENSE
MS-PL
ORIGINAL_LICENSE

Stars

Watchers

Forks

Languages