update api

This commit is contained in:
Phuoc Nguyen
2025-10-10 17:15:40 +07:00
parent b94c158004
commit 04f7042b8d
24 changed files with 3322 additions and 8 deletions

View File

@@ -0,0 +1,60 @@
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
/// Secure storage service for storing sensitive data like JWT tokens
class SecureStorage {
final FlutterSecureStorage _storage;
// Storage keys
static const String _accessTokenKey = 'access_token';
static const String _refreshTokenKey = 'refresh_token';
SecureStorage({FlutterSecureStorage? storage})
: _storage = storage ?? const FlutterSecureStorage();
/// Save access token
Future<void> saveAccessToken(String token) async {
await _storage.write(key: _accessTokenKey, value: token);
}
/// Get access token
Future<String?> getAccessToken() async {
return await _storage.read(key: _accessTokenKey);
}
/// Save refresh token (for future use)
Future<void> saveRefreshToken(String token) async {
await _storage.write(key: _refreshTokenKey, value: token);
}
/// Get refresh token (for future use)
Future<String?> getRefreshToken() async {
return await _storage.read(key: _refreshTokenKey);
}
/// Delete access token
Future<void> deleteAccessToken() async {
await _storage.delete(key: _accessTokenKey);
}
/// Delete refresh token
Future<void> deleteRefreshToken() async {
await _storage.delete(key: _refreshTokenKey);
}
/// Delete all tokens (logout)
Future<void> deleteAllTokens() async {
await _storage.delete(key: _accessTokenKey);
await _storage.delete(key: _refreshTokenKey);
}
/// Check if access token exists
Future<bool> hasAccessToken() async {
final token = await getAccessToken();
return token != null && token.isNotEmpty;
}
/// Clear all secure storage
Future<void> clearAll() async {
await _storage.deleteAll();
}
}