checkAndRefreshToken method
Future<void>
checkAndRefreshToken(
)
Implementation
Future<void> checkAndRefreshToken() async {
print('Checking and refreshing token...');
final FlutterSecureStorage secureStorage = FlutterSecureStorage();
final String? jwtToken = await secureStorage.read(key: "JWT_Token");
if (jwtToken != null && jwtToken.isNotEmpty) {
Map<String, dynamic> decodedToken = JwtDecoder.decode(jwtToken);
int exp = decodedToken['exp'];
int currentTime = DateTime.now().millisecondsSinceEpoch ~/ 1000;
int remainingTime = exp - currentTime;
double remainingTimeInMinutes = remainingTime / 60;
if (remainingTimeInMinutes < 10) {
print('Token is about to expire. Refreshing token...');
final String? refreshToken = await secureStorage.read(key: "Refresh_Token");
final String? username = await secureStorage.read(key: "Username");
if (refreshToken != null && username != null) {
print(username);
print(refreshToken);
await _refreshToken(refreshToken, username);
} else {
print('Refresh token or username is null');
}
} else {
String formattedTime = remainingTimeInMinutes.toStringAsFixed(0);
print("Remaining time before token expires: $formattedTime minutes");
}
} else {
print('No Jwt token found...');
}
}