22 lines
737 B
Dart
22 lines
737 B
Dart
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
|
|
const _jwtKey = 'jwt_token';
|
|
|
|
/// Sensitive identity values stay behind one injectable storage boundary.
|
|
class SecureIdentityStorage {
|
|
SecureIdentityStorage({FlutterSecureStorage? storage})
|
|
: _storage = storage ?? const FlutterSecureStorage();
|
|
|
|
final FlutterSecureStorage _storage;
|
|
|
|
Future<void> saveJwt(String token) =>
|
|
_storage.write(key: _jwtKey, value: token);
|
|
Future<void> clearJwt() => _storage.delete(key: _jwtKey);
|
|
Future<String?> readJwt() => _storage.read(key: _jwtKey);
|
|
}
|
|
|
|
final secureIdentityStorageProvider = Provider<SecureIdentityStorage>(
|
|
(ref) => SecureIdentityStorage(),
|
|
);
|