Autentikasi biometrik telah menjadi metode populer untuk meningkatkan keamanan dalam aplikasi mobile. Dengan memanfaatkan ciri-ciri biologis unik seperti sidik jari dan pengenalan wajah, biometrik menawarkan cara yang lebih aman dan praktis bagi pengguna untuk melakukan autentikasi. Di dalam framework Flutter, penerapan autentikasi biometrik cukup mudah berkat ketersediaan berbagai package dan alat. Saatnyak kita membahas langkah-langkah untuk mengimplementasikan biometrik di Flutter.
1. Memahami Biometrik di Flutter
Sebelum memulai, penting untuk memahami bagaimana biometrik bekerja di Flutter. Biometrik adalah metode autentikasi yang menggunakan data biologis pengguna, seperti sidik jari atau wajah, untuk memverifikasi identitas mereka. Di Flutter, kita bisa menggunakan beberapa package yang sudah tersedia untuk mengintegrasikan fitur ini ke dalam aplikasi.
2. Menggunakan Package local_auth
Salah satu package yang paling umum digunakan untuk autentikasi biometrik di Flutter adalah local_auth
. Package ini mendukung berbagai metode autentikasi biometrik yang tersedia di perangkat Android dan iOS. Berikut adalah langkah-langkah untuk menggunakannya:
Instalasi
Tambahkan package local_auth
ke dalam file pubspec.yaml
dependencies:
local_auth: ^2.3.0
setelah itu di terminal jalankan perintah flutter pub get
atau bisa juga di terminal jalankan perintah
flutter pub add local_auth
Konfigurasi di Android
Untuk mengonfigurasi autentikasi biometrik di Android, tambahkan izin berikut ke dalam file AndroidManifest.xml
lokasinya berada di android/app/src/main/AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
Mengimplementasikan Biometrik di Aplikasi Flutter
Setelah konfigurasi selesai, Anda dapat mulai mengimplementasikan autentikasi biometrik dalam aplikasi. Berikut adalah contoh sederhana untuk menggunakan sidik jari atau Face ID:
import 'package:flutter/material.dart';
import 'package:local_auth/local_auth.dart';
class BiometricAuth extends StatefulWidget {
@override
_BiometricAuthState createState() => _BiometricAuthState();
}
class _BiometricAuthState extends State<BiometricAuth> {
final LocalAuthentication auth = LocalAuthentication();
Future<void> _authenticate() async {
try {
bool authenticated = await auth.authenticate(
localizedReason: 'Scan your fingerprint to authenticate',
options: const AuthenticationOptions(
biometricOnly: true,
),
);
if (authenticated) {
// User authenticated successfully
}
} catch (e) {
print(e);
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Biometric Authentication'),
),
body: Center(
child: ElevatedButton(
onPressed: _authenticate,
child: Text('Authenticate'),
),
),
);
}
}
kemudian panggil class BiometricAuth di file main.dart
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: BiometricAuth(),
);
}
}