barcode_scanner/lib/services/token_provider.dart
2025-06-19 16:41:41 +03:00

44 lines
1.4 KiB
Dart

import 'package:barcode_scanner/services/secure_storage.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
final tokenProvider = Provider((ref) {
final storage = ref.watch(sharedPrefsProvider);
return TokenProvider(storage);
});
class TokenProvider {
TokenProvider(this._storage);
final FlutterSecureStorage _storage;
static const String tokenKey = "tokenKey";
static const String refreshTokenKey = "refreshTokenKey";
Future<void> setToken(String token) async {
return _storage.write(key: tokenKey, value: token);
}
Future<void> setRefreshToken(String token) async {
return _storage.write(key: refreshTokenKey, value: token);
}
// Method to get the token from secure storage and check if it's expired
Future<String?> getToken() async {
final token = await _storage.read(key: tokenKey);
debugPrint("Token expired: $token");
return token;
}
Future<String?> getRefreshToken() async {
final refreshToken = await _storage.read(key: refreshTokenKey);
debugPrint("Refresh token: $refreshToken");
return refreshToken;
}
// Method to delete the token from secure storage
Future<void> deleteToken() async {
await _storage.delete(key: tokenKey);
await _storage.delete(key: refreshTokenKey);
}
}