biometric_auth

This package provides a stateful widget to perform local, on-device authentication of the user referring to biometric authentication on iOS (Touch ID or lock code) and the fingerprint APIs on Android (introduced in Android 6.0).

Getting Started

To use this widget, add biometric_auth as a dependency in your pubspec.yaml file.

The widget implementation uses the StatefulWidget named BiometricWidget which receives a title which gets displayed on the dialog of the native biometric interface when popped up.

Checkout the sample below for usage of the widget.

Example

import 'package:flutter/material.dart';
import 'package:biometric_auth/biometric_auth.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BiometricWidget(
      title: "Confirm your Fingerprint now",
      child: MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Fingerprint Authentication'),
    )
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  @override
  Widget build(BuildContext context) {
    var biometric = BiometricWidget.of(context);
    bool hasFingerPrintSupport = biometric.hasFingerPrintSupport;
    String authorizedOrNot = biometric.authorizedOrNot;
    var availableBiometricType = biometric.availableBiometricType;
    var authenticateMe = biometric.authenticateMe;

    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text("Has FingerPrint Support : $hasFingerPrintSupport"),
            Text(
                "List of Biometrics Support: ${availableBiometricType.toString()}"),
            Text("Authorized : $authorizedOrNot"),
            RaisedButton(
              child: Text("Authorize Now"),
              color: Colors.green,
              onPressed: authenticateMe,
            ),
          ],
        ),
      ),
    );
  }
}

Libraries

biometric_auth