barcode_scanner/lib/services/token_provider.dart
mandreshope 61047f266d chore: Renames project to e_scan
Performs a comprehensive project rename from 'barcode_scanner' to 'e_scan' (or 'eScan' for user-facing labels). This update spans all relevant files, including:

- Application IDs and bundle identifiers for Android, iOS, macOS, and Linux.
- VS Code launch configurations.
- Dart package import paths.
- Project names and titles in `pubspec.yaml`, `README.md`, and platform-specific configurations (e.g., CMakeLists, Info.plist, AndroidManifest).
2025-07-30 09:19:44 +03:00

88 lines
2.6 KiB
Dart

import 'dart:convert';
import 'package:e_scan/backend/schema/user/user_struct.dart';
import 'package:e_scan/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 sessionIdKey = "sessionIdKey";
static const String refreshTokenKey = "refreshTokenKey";
Future<void> setToken(String token) async {
return _storage.write(key: tokenKey, value: token);
}
Future<void> setSessionId(String sessionId) async {
return _storage.write(key: sessionIdKey, value: sessionId);
}
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?> getSessionId() async {
final value = await _storage.read(key: sessionIdKey);
return value;
}
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);
await _storage.delete(key: sessionIdKey);
}
}
final userConnectedProvider = Provider((ref) {
final storage = ref.watch(sharedPrefsProvider);
return UserConnectedProvider(storage);
});
class UserConnectedProvider {
UserConnectedProvider(this._storage);
final FlutterSecureStorage _storage;
static const String key = "userConnectedKey";
Future<void> set(UserStruct user) async {
return _storage.write(key: key, value: jsonEncode(user.toJson()));
}
// Method to get the token from secure storage and check if it's expired
Future<UserStruct?> get() async {
final res = await _storage.read(key: key);
if (res == null) {
return null;
} else {
return UserStruct.fromJson(jsonDecode(res));
}
}
// Method to delete the token from secure storage
Future<void> delete() async {
await _storage.delete(key: key);
}
}