46 lines
1.3 KiB
Dart
46 lines
1.3 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:jiffy/jiffy.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
import 'constant.dart';
|
|
|
|
String formatDateJiffy(String serverDate) {
|
|
return Jiffy.parse(serverDate).format(pattern: 'dd-MM-yyyy');
|
|
}
|
|
|
|
Future<bool> isTokenExpired() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
final bearerString = prefs.getString(Constant.bearerName);
|
|
|
|
if (bearerString == null || bearerString == "null") {
|
|
print("BEARER STRING NULL");
|
|
return true;
|
|
}
|
|
|
|
final xmodel = jsonDecode(bearerString);
|
|
if (xmodel == null) return true;
|
|
|
|
final String? expireDateStr = xmodel['expire_date'];
|
|
|
|
print("EXPIRE DATE $expireDateStr");
|
|
|
|
if (expireDateStr == null || expireDateStr.isEmpty) {
|
|
print("Token EXPIRED (Tidak Ada Tanggal Expire)");
|
|
return true; // Anggap expired jika tidak ada data
|
|
}
|
|
|
|
try {
|
|
DateTime expiredDate = DateTime.parse(expireDateStr);
|
|
DateTime batasExpired = expiredDate.subtract(Duration(minutes: 3));
|
|
DateTime now = DateTime.now();
|
|
|
|
final bool expired = now.isAfter(batasExpired);
|
|
print(expired ? "Token EXPIRED (Perlu Refresh)" : "Token MASIH AKTIF");
|
|
return expired;
|
|
} catch (e) {
|
|
print("Token EXPIRED (Format Salah)");
|
|
return true; // Anggap expired jika terjadi error parsing
|
|
}
|
|
}
|