getRefreshTokenAsync method
Get refresh token asynchronously from secure storage
Implementation
Future<String?> getRefreshTokenAsync() async {
// Try sync method first
final syncToken = _getRefreshToken();
if (syncToken != null && syncToken.isNotEmpty) {
return syncToken;
}
// Fallback: read directly from secure storage
try {
const storage = FlutterSecureStorage(
aOptions: AndroidOptions(encryptedSharedPreferences: true),
iOptions: IOSOptions(accessibility: KeychainAccessibility.first_unlock),
);
final token = await storage.read(key: 'com.runanywhere.sdk.refreshToken');
if (token != null && token.isNotEmpty) {
// Update cache for next time
_secureCache['com.runanywhere.sdk.refreshToken'] = token;
return token;
}
} catch (e) {
_logger.debug('Failed to read refresh token from secure storage: $e');
}
return null;
}