chore: remove PIN code from secure storage on logged out (#18393)

This commit is contained in:
Alex 2025-05-20 09:39:05 -05:00 committed by GitHub
parent d1e6682df0
commit 4e2fc9f017
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,6 +1,7 @@
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter_udid/flutter_udid.dart'; import 'package:flutter_udid/flutter_udid.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/constants/constants.dart';
import 'package:immich_mobile/domain/models/store.model.dart'; import 'package:immich_mobile/domain/models/store.model.dart';
import 'package:immich_mobile/domain/models/user.model.dart'; import 'package:immich_mobile/domain/models/user.model.dart';
import 'package:immich_mobile/domain/services/user.service.dart'; import 'package:immich_mobile/domain/services/user.service.dart';
@ -11,6 +12,7 @@ import 'package:immich_mobile/providers/api.provider.dart';
import 'package:immich_mobile/providers/infrastructure/user.provider.dart'; import 'package:immich_mobile/providers/infrastructure/user.provider.dart';
import 'package:immich_mobile/services/api.service.dart'; import 'package:immich_mobile/services/api.service.dart';
import 'package:immich_mobile/services/auth.service.dart'; import 'package:immich_mobile/services/auth.service.dart';
import 'package:immich_mobile/services/secure_storage.service.dart';
import 'package:immich_mobile/utils/hash.dart'; import 'package:immich_mobile/utils/hash.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:openapi/api.dart'; import 'package:openapi/api.dart';
@ -20,6 +22,7 @@ final authProvider = StateNotifierProvider<AuthNotifier, AuthState>((ref) {
ref.watch(authServiceProvider), ref.watch(authServiceProvider),
ref.watch(apiServiceProvider), ref.watch(apiServiceProvider),
ref.watch(userServiceProvider), ref.watch(userServiceProvider),
ref.watch(secureStorageServiceProvider),
); );
}); });
@ -27,12 +30,17 @@ class AuthNotifier extends StateNotifier<AuthState> {
final AuthService _authService; final AuthService _authService;
final ApiService _apiService; final ApiService _apiService;
final UserService _userService; final UserService _userService;
final SecureStorageService _secureStorageService;
final _log = Logger("AuthenticationNotifier"); final _log = Logger("AuthenticationNotifier");
static const Duration _timeoutDuration = Duration(seconds: 7); static const Duration _timeoutDuration = Duration(seconds: 7);
AuthNotifier(this._authService, this._apiService, this._userService) AuthNotifier(
: super( this._authService,
this._apiService,
this._userService,
this._secureStorageService,
) : super(
AuthState( AuthState(
deviceId: "", deviceId: "",
userId: "", userId: "",
@ -67,6 +75,7 @@ class AuthNotifier extends StateNotifier<AuthState> {
Future<void> logout() async { Future<void> logout() async {
try { try {
await _secureStorageService.delete(kSecuredPinCode);
await _authService.logout(); await _authService.logout();
} finally { } finally {
await _cleanUp(); await _cleanUp();