getToken method

Future<String> getToken()

Asynchronously retrieves or restores token from storage.

Implementation

Future<String> getToken() async {
  if (_cachedToken != null) {
    return _cachedToken!;
  }
  try {
    final stored = await _storage.getItem(storageKey);
    if (stored != null && stored.trim().isNotEmpty) {
      _cachedToken = stored.trim();
      return _cachedToken!;
    }
  } catch (_) {
    // Fallback
  }

  final newToken = generateUuid();
  _cachedToken = newToken;
  try {
    await _storage.setItem(storageKey, newToken);
  } catch (_) {}
  return newToken;
}