fingerprint_dart_auth_sdk 0.0.2 copy "fingerprint_dart_auth_sdk: ^0.0.2" to clipboard
fingerprint_dart_auth_sdk: ^0.0.2 copied to clipboard

A Dart SDK for Fingerprint Authentication, enabling secure server-side authentication and user management for Dart-based backend applications.

Fingerprint Dart Auth SDK #

Overview #

The Fingerprint Dart Auth SDK provides a unified API for biometric (fingerprint/face) authentication across Flutter mobile, desktop, and server-side Dart environments. With this SDK you can:

  • Prompt the user for biometric verification (fingerprint, face ID)
  • Fall back to PIN or passcode if biometrics aren’t available or fail
  • Securely cache and verify session tokens post-authentication
  • Integrate with platform keystores (Android Keystore, iOS Keychain, Windows Hello)
  • Customize prompts, timeouts, and retry logic

Whether you’re building a Flutter mobile app, a desktop client, or a Dart server that needs to verify device possession, this SDK makes adding biometric security seamless.


Features #

  • Cross-Platform Biometric API

    • Fingerprint, Touch ID, Face ID on mobile/desktop
    • Automatic detection of available modalities
  • PIN/Passcode Fallback

    • Configurable fallback to a numeric PIN or device passcode
    • Pluggable storage for PIN verification
  • Secure Token Handling

    • Encrypt and cache session tokens in platform keystores
    • Automatic expiry checks and forced re-authentication
  • Customizable UX

    • Override default prompt titles, subtitles, and error messages
    • Control timeout, maximum retries, and UI styling
  • Server-Side Verification

    • Challenge/response flows for headless Dart services
    • Validate client-provided biometric proof via signed tokens
  • Extensible Storage

    • Default implementations for file, in-memory, and keystore backends
    • Implement your own SecureStorage for database or cloud caching

Getting Started #

1. Prerequisites #

  • Flutter ≥ 2.10 (with local_auth plugin) or Dart ≥ 2.14
  • An Android or iOS device/emulator with biometrics enabled (for mobile)
  • Windows 10+ with Windows Hello (for desktop)

2. Configure Your App #

Flutter

  1. Add the local_auth plugin and enable biometrics in your AndroidManifest.xml and Info.plist.
  2. Ensure your app has the appropriate entitlements for Face ID / Touch ID on iOS.

Dart Server

  • No special platform setup; you’ll issue and verify signed tokens based on client assertions.

Installation #

Add the SDK to your project:

# Dart:
dart pub add fingerprint_dart_auth_sdk

# Flutter:
flutter pub add fingerprint_dart_auth_sdk

Or manually in your pubspec.yaml:

dependencies:
  fingerprint_dart_auth_sdk: ^0.0.2

Then fetch:

dart pub get

Usage #

Initialize the SDK #

import 'package:fingerprint_dart_auth_sdk/fingerprint_dart_auth_sdk.dart';

void main() async {
  final auth = FingerprintAuth(
    storage: SecureKeychainStorage(),   // or FileStorage(), MemoryStorage()
    promptConfig: PromptConfig(
      title: 'Verify your identity',
      subtitle: 'Use fingerprint or passcode',
      timeoutSeconds: 30,
      maxRetries: 3,
    ),
  );
}

Authenticate with Biometrics #

final result = await auth.authenticate();

// result.isSuccess == true if fingerprint (or face) verified
if (result.isSuccess) {
  // Issue your session token
  final token = await auth.issueSessionToken(userId: 'alice');
} else {
  print('Authentication failed or cancelled: ${result.errorMessage}');
}

PIN/Passcode Fallback #

// If biometrics unavailable, fallback to PIN
final pinResult = await auth.authenticateWithPin(
  pinValidator: (pin) => pin == '1234',
);

if (pinResult.isSuccess) {
  // PIN accepted
}

Silent Token Refresh #

// Checks stored session token, re-authenticates if expired
final session = await auth.getSession();
if (!session.isValid) {
  await auth.authenticate(); // triggers biometric or PIN again
}

Advanced #

  • Custom Storage

    class MySecureDbStorage implements SecureStorage {
      // implement saveToken, loadToken, clearToken
    }
    
    auth.setStorage(MySecureDbStorage());
    
  • Server-Side Verification

    // Verify a client’s signed biometric assertion
    final isValid = await auth.verifyBiometricProof(
      assertionJwt: clientJwt,
      publicKey: myPublicKey,
    );
    
  • UI Styling

    auth.promptConfig = auth.promptConfig.copyWith(
      subtitle: 'Touch the sensor or enter your PIN',
      analyticsEnabled: true,
    );
    

Documentation #

For full API reference, examples, and troubleshooting, see our GitBook:

👉 Fingerprint Dart Auth SDK Docs

0
likes
80
points
381
downloads

Publisher

verified publisheraortem.io

Weekly Downloads

A Dart SDK for Fingerprint Authentication, enabling secure server-side authentication and user management for Dart-based backend applications.

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

build_web_compilers, ds_standard_features, jwt_generator

More

Packages that depend on fingerprint_dart_auth_sdk