inou-mobile/lib/core/auth.dart

42 lines
1.1 KiB
Dart

import 'package:local_auth/local_auth.dart';
/// Authentication service for biometrics
class AuthService {
final LocalAuthentication _localAuth = LocalAuthentication();
/// Check if biometrics are available
Future<bool> isBiometricsAvailable() async {
try {
final canCheckBiometrics = await _localAuth.canCheckBiometrics;
final isDeviceSupported = await _localAuth.isDeviceSupported();
return canCheckBiometrics && isDeviceSupported;
} catch (e) {
return false;
}
}
/// Authenticate using biometrics
Future<bool> authenticate({String reason = 'Please authenticate to continue'}) async {
try {
return await _localAuth.authenticate(
localizedReason: reason,
options: const AuthenticationOptions(
stickyAuth: true,
biometricOnly: false,
),
);
} catch (e) {
return false;
}
}
/// Get available biometric types
Future<List<BiometricType>> getAvailableBiometrics() async {
try {
return await _localAuth.getAvailableBiometrics();
} catch (e) {
return [];
}
}
}