xdg_secret_portal_store 0.2.1
xdg_secret_portal_store: ^0.2.1 copied to clipboard
A helper library for storing application secrets in an encrypted file using the master secret provided by the XDG Desktop Portal Secret API.
// ignore_for_file: avoid_print
import 'dart:io';
import 'package:xdg_desktop_portal/xdg_desktop_portal.dart';
import 'package:xdg_directories/xdg_directories.dart';
import 'package:xdg_secret_portal_store/xdg_secret_portal_store.dart';
import 'package:xdg_secret_portal_store_default/xdg_secret_portal_store_default.dart';
void main() async {
final portal = XdgDesktopPortalClient();
try {
final file = File(
'${dataHome.path}/org.example.xdg_secret_portal_store_example/xdg_secret_portal_store/secrets.json',
);
final store = XdgSecretPortalStore(
masterSecretRetriever: portal.secret.retrieveSecret,
persistence: SecretStorePersistenceFile(file),
crypto: SecretStoreCryptoDefault(),
);
await store.loadMasterSecret();
final secrets = await store.read();
print('Secrets: $secrets');
secrets['password'] = '12345678';
secrets['refresh_token'] = '...';
secrets['access_token'] = '...';
await store.write(secrets);
print('Password has been updated.');
} finally {
await portal.close();
}
}