getAuthTokenModel method
The AuthTokenModel currently stored in secure storage, or null if
absent, empty, or corrupted.
Parses stored JSON with convert: false because the timestamps are
already absolute millisecond values (written by setAuthTokenModel).
Corrupted data is cleared automatically to prevent repeated failures.
Implementation
Future<AuthTokenModel?> getAuthTokenModel() async {
try {
final String? raw = await storage.read(key: _keyTokens);
if (raw == null || raw.isEmpty) return null;
final Object? decoded = json.decode(raw);
if (decoded is! Map<String, dynamic>) {
await deleteAuthTokenModelData();
return null;
}
final AuthTokenModel? token = AuthTokenModel.tryFromJson(decoded, convert: false);
if (token == null || token.isEmpty) {
await deleteAuthTokenModelData();
return null;
}
return token;
} catch (e, st) {
getIt<AppLogger>().warn(
'[SecureStorage] Failed to read auth token. Clearing stored token.',
error: e,
stackTrace: st,
extras: const <String, Object?>{'key': 'key_tokens', 'source': 'SecureStorage.getAuthTokenModel'},
);
await deleteAuthTokenModelData();
return null;
}
}