single_item_secure_storage 0.1.0 copy "single_item_secure_storage: ^0.1.0" to clipboard
single_item_secure_storage: ^0.1.0 copied to clipboard

Keychain/Keystore persistent Storage implementation. Uses `flutter_secure_storage` under a `Storage` abstraction.

single_item_secure_storage #

Keychain/Keystore persistent Storage implementation.

This package is an addon to the single_item_storage package and offers a Storage implementation using the flutter_secure_storage package and dart JSON converters, json.encode and json.decode, to store items.

Getting started #

Create a new instance by providing fromMap and toMap item converters, itemKey as key for this item in keychain, and an optional secureStore instance. Additionally you can add iOS and Android options. If options are not added, the default ones will be used.

Storage<User> storage = CachedStorage<User>(SecureStorage(
  itemKey: 'model.user.key',
  fromMap: (map) => User.fromMap(map),
  toMap: (item) => item.toMap(),
  iosOptions: IOSOptions(), 
  androidOptions: AndroidOptions(),
));

@JsonSerializable()
class User {
  final String id;
  final String email;

  factory User.fromMap(Map<String, dynamic> json) => _$UserFromJson(json);
  Map<String, dynamic> toMap() => _$UserToJson(this);

  User(this.id, this.email);
}

To store primitive values that don't need a converter use the .primitive named constructor.

/* Supported primitive types: 
 - bool
 - double
 - int
 - String
 */
SecureStorage<int>.primitive(itemKey: 'cow_counter')

If the secureStorage is omitted, then an instance of FlutterSecureStorage is used.

When defining the to/from map converter mind that the map values can only be: number, boolean, string, null, list or a map with string keys as defined in json.encode and json.decode from the dart:convert package.

This example uses json_serializable as Map converter for convenience.


Note on iOS usage

On iOS the secure storage is not deleted when the app is uninstalled. This is sometimes desired and other times not, whatever the case keep it in mind when designing your use case. More information can be found on the following link.

1
likes
110
pub points
69%
popularity

Publisher

unverified uploader

Keychain/Keystore persistent Storage implementation. Uses `flutter_secure_storage` under a `Storage` abstraction.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter, flutter_secure_storage, single_item_storage

More

Packages that depend on single_item_secure_storage