step 23 : fix check isTokenExpired > 3 menit refreshToken
This commit is contained in:
@@ -121,7 +121,6 @@ class NoLoginNotifier extends StateNotifier<NoLoginState> {
|
||||
required String host,
|
||||
required String password,
|
||||
}) async {
|
||||
try {
|
||||
state = NoLoginStateLoading();
|
||||
final resp = await NoLoginAuthRepository(
|
||||
dio: ref.read(dioProvider),
|
||||
@@ -135,43 +134,19 @@ class NoLoginNotifier extends StateNotifier<NoLoginState> {
|
||||
|
||||
// Simpan ke SharedPreferences
|
||||
final shared = await SharedPreferences.getInstance();
|
||||
String expireDateStr = resp.expire_date;
|
||||
|
||||
// Pastikan format ISO 8601 dengan "T"
|
||||
if (!expireDateStr.contains("T")) {
|
||||
expireDateStr = expireDateStr.replaceFirst(" ", "T");
|
||||
}
|
||||
|
||||
// Cek apakah expire_date valid
|
||||
try {
|
||||
DateTime.parse(expireDateStr);
|
||||
} catch (e) {
|
||||
print(
|
||||
"❌ Format expire_date tidak valid: $expireDateStr, menggunakan waktu default.");
|
||||
expireDateStr = DateTime.now().toIso8601String();
|
||||
}
|
||||
|
||||
|
||||
// Simpan token dalam format JSON
|
||||
final token = jsonEncode({
|
||||
"expire_date": resp.expire_date,
|
||||
"host": host,
|
||||
"date": DateTime.now().toIso8601String(),
|
||||
"token": resp.token,
|
||||
"client_id": resp.client_id,
|
||||
"expire_date": expireDateStr,
|
||||
"isLogin": resp.isLogin,
|
||||
});
|
||||
|
||||
await shared.setString(Constant.bearerName, token);
|
||||
ref.read(noLoginCurrentUserProvider.notifier).state = resp;
|
||||
|
||||
print("✅ Token berhasil disimpan ke SharedPreferences!");
|
||||
} catch (e) {
|
||||
if (e is BaseRepositoryException) {
|
||||
state = NoLoginStateError(message: e.message);
|
||||
} else {
|
||||
state = NoLoginStateError(message: e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user