60 lines
2.0 KiB
Dart
60 lines
2.0 KiB
Dart
import 'package:jiffy/jiffy.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
String formatDateJiffy(String serverDate) {
|
|
return Jiffy.parse(serverDate).format(pattern: 'dd-MM-yyyy');
|
|
}
|
|
|
|
// Future<bool> isTokenExpired() async {
|
|
// final prefs = await SharedPreferences.getInstance();
|
|
// final String? expireDateStr = prefs.getString("expire_date");
|
|
|
|
// if (expireDateStr == null) return true;
|
|
|
|
// final DateTime expireDateTime = DateTime.parse(expireDateStr);
|
|
// final DateTime now = DateTime.now();
|
|
|
|
// print('expireDateTime : '+expireDateTime.toString());
|
|
// print('now : '+now.toString());
|
|
|
|
// // return DateTime.now().isAfter(expireDateTime);
|
|
// // Jika token kurang dari 1 menit lagi akan kedaluwarsa,
|
|
// // atau lebih dari = 2 menit, maka harus refresh
|
|
// return (expireDateTime.difference(now).inMinutes == 1) || (expireDateTime.difference(now).inMinutes >= 2);
|
|
// }
|
|
|
|
Future<bool> isTokenExpired() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
final String? expireDateStr = prefs.getString("expire_date");
|
|
|
|
print("📌 Expire Date dari SharedPreferences: $expireDateStr");
|
|
|
|
if (expireDateStr == null) {
|
|
print("❌ Expire date tidak ditemukan, dianggap expired.");
|
|
return true;
|
|
}
|
|
|
|
DateTime? expireDateTime;
|
|
try {
|
|
expireDateTime = DateTime.parse(expireDateStr);
|
|
} catch (e) {
|
|
print("❌ Format expire_date tidak valid: $expireDateStr, Error: $e");
|
|
return true;
|
|
}
|
|
|
|
final DateTime now = DateTime.now();
|
|
final int diffInMinutes = expireDateTime.difference(now).inMinutes;
|
|
|
|
print("🕒 Expire date: $expireDateTime");
|
|
print("🕒 Waktu sekarang: $now");
|
|
print("⏳ Selisih waktu dalam menit: $diffInMinutes");
|
|
|
|
// Jika sudah lewat atau kurang dari 4 menit, anggap expired agar bisa di-refresh sebelum benar-benar habis
|
|
final bool expired = now.isAfter(expireDateTime) || diffInMinutes <= 4;
|
|
print(expired ? "🔴 Token EXPIRED (Perlu Refresh)" : "🟢 Token MASIH AKTIF");
|
|
|
|
// final bool expired = now.isAfter(expireDateTime);
|
|
|
|
return expired;
|
|
}
|