You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
HMG_Patient_App_New/lib/services/localauth_service.dart

49 lines
1.1 KiB
Dart

import 'package:local_auth/local_auth.dart';
import 'logger_service.dart';
class LocalAuthService {
final LocalAuthentication localAuth;
final LoggerService loggerService;
LocalAuthService({required this.localAuth, required this.loggerService});
Future<bool> authenticate() async {
try {
final canCheck = await localAuth.canCheckBiometrics;
final isDeviceSupported = await localAuth.isDeviceSupported();
if (!canCheck || !isDeviceSupported) {
return false;
}
final isAuthenticated = await localAuth.authenticate(
localizedReason: 'Please authenticate to proceed',
options: const AuthenticationOptions(
biometricOnly: true,
stickyAuth: true,
),
);
return isAuthenticated;
} catch (e) {
print(e);
return false;
}
}
Future<bool> canCheckBiometrics() async {
try {
return await localAuth.canCheckBiometrics;
} catch (e) {
return false;
}
}
Future<List<BiometricType>> getAvailableBiometrics() async {
try {
return await localAuth.getAvailableBiometrics();
} catch (e) {
return [];
}
}
}