[auth] Bypass auth in debugMode if recently authenticated

This commit is contained in:
Neeraj Gupta
2024-09-09 14:50:56 +05:30
parent 05200878f2
commit f44f21c5ad

View File

@@ -8,6 +8,7 @@ import 'package:ente_auth/utils/auth_util.dart';
import 'package:ente_auth/utils/dialog_util.dart'; import 'package:ente_auth/utils/dialog_util.dart';
import 'package:ente_auth/utils/lock_screen_settings.dart'; import 'package:ente_auth/utils/lock_screen_settings.dart';
import 'package:ente_auth/utils/toast_util.dart'; import 'package:ente_auth/utils/toast_util.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_local_authentication/flutter_local_authentication.dart'; import 'package:flutter_local_authentication/flutter_local_authentication.dart';
@@ -19,11 +20,19 @@ class LocalAuthenticationService {
static final LocalAuthenticationService instance = static final LocalAuthenticationService instance =
LocalAuthenticationService._privateConstructor(); LocalAuthenticationService._privateConstructor();
final logger = Logger((LocalAuthenticationService).toString()); final logger = Logger((LocalAuthenticationService).toString());
int lastAuthTime = 0;
Future<bool> requestLocalAuthentication( Future<bool> requestLocalAuthentication(
BuildContext context, BuildContext context,
String infoMessage, String infoMessage,
) async { ) async {
if (kDebugMode) {
// if last auth time is less than 60 seconds, don't ask for auth again
if (lastAuthTime != 0 &&
DateTime.now().millisecondsSinceEpoch - lastAuthTime < 60000) {
return true;
}
}
if (await isLocalAuthSupportedOnDevice() || if (await isLocalAuthSupportedOnDevice() ||
LockScreenSettings.instance.getIsAppLockSet()) { LockScreenSettings.instance.getIsAppLockSet()) {
AppLock.of(context)!.setEnabled(false); AppLock.of(context)!.setEnabled(false);
@@ -39,6 +48,7 @@ class LocalAuthenticationService {
showToast(context, infoMessage); showToast(context, infoMessage);
return false; return false;
} else { } else {
lastAuthTime = DateTime.now().millisecondsSinceEpoch;
return true; return true;
} }
} }