Files
scan-ktp/lib/app/app_extension.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
}
}