Lompat ke konten
A alfach.com

Implementasi Autentikasi Fingerprint Pada Flutter

A alfach.com
2 menit baca
Implementasi Autentikasi Fingerprint Pada Flutter

Ada kalanya kita perlu mengimplementasikan autentikasi berupa sidik jari (fingerprint) dalam aplikasi yang kita kembangkan. Dalam flutter implementasi sidik jari dapat dengan mudah digunakan. Tersedia plugin yang di maintain langsung oleh tim Flutter sendiri. Plugin yang kita gunakan adalah local_auth.

Untuk mulai mengimplementasikan :

  • Tambah plugin local_auth dalam pubspec.yaml

dependencies:
local_auth: "^0.0.1"

  • Lalu pada flutter, membuat file yang akan menampilkan scan fingerprint berupa popup :
VHDL
import 'package:local_auth/local_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

class AuthorizePage extends StatefulWidget {
  @override
  _AuthorizePageState createState() =>_AuthorizePageState();
}

class _AuthorizePageState extends State<AuthorizePage> {
  final LocalAuthentication localAuth = LocalAuthentication();
  bool _canCheckBiometric = false;
  String _authorizeText = 'Not Authorized!';

  List availableBiometrics = List();

  Future _authorize() async {
    bool _isAuthorized = false;
    try {
      _isAuthorized = await localAuth.authenticateWithBiometrics(
        localizedReason: 'Please authenticate to Complete this process',
        useErrorDialogs: true,
        stickyAuth: true,
      );
    } on PlatformException catch (e) {
      print(e);
    }

    if (!mounted) return;

    setState(() {
      if (_isAuthorized) {
        _authorizeText = "Authorized Successfully!";
      } else {
        _authorizeText = "Not Authorized!";
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Touch ID Auth Example')),
      body: Center(
          child: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Text(_authorizeText),
          ),
          RaisedButton(
            child: Text('Authorize'),
            color: Colors.red,
            onPressed: _authorize,
          )
        ],
      )),
    );
  }
}

Integrasi Android

Untuk dapat berjalan di android, kita perlu mengubah/menambah beberapa :

Tambahkan permission untuk mengakses fingerprint pada AndroidManifest.xml

<uses-permission android:name="android.permission.USE_FINGERPRINT"/>

Selanjutnya ubah file MainActivity.java atau MainActivity.kt yang berada di struktur project android dengan mengubah implementasinya dari FlutterActivity ke FlutterFragmentActivity, seperti :

Java
import android.os.Bundle;
import io.flutter.app.FlutterFragmentActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;

public class MainActivity extends FlutterFragmentActivity {
 Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   GeneratedPluginRegistrant.registerWith(this);
}

Integrasi di iOS

Sementara untuk di ios diperlukan permission juga ke dalam file info.plist berupa :

Kode
NSFaceIDUsageDescription
Why is my app authenticating using face id?

maka akan menampilkan seperti ini :

Bacaan terkait

Development

Install Golang di Mac

Berikut adalah panduan untuk menginstal Go (Golang) di macOS: 1. Mengunduh dan Menginstal Go Anda dapat menginstal Go menggunakan beberapa metode, termasuk Homebrew...

2 menit

Komentar (0)

Belum ada komentar. Jadilah yang pertama.

Tulis komentar

Komentar akan dimoderasi sebelum tampil.

Tidak akan dipublikasikan.