44 lines
1.4 KiB
Dart
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);
|
|
}
|
|
}
|