fix(api_service): enhance logout handling on token issues

This commit is contained in:
Vaibhav Surve 2025-07-18 10:15:25 +05:30
parent 4908db35ad
commit 02daa1e689

View File

@ -20,7 +20,8 @@ class ApiService {
final token = await LocalStorage.getJwtToken(); final token = await LocalStorage.getJwtToken();
if (token == null) { if (token == null) {
logSafe("No JWT token found."); logSafe("No JWT token found. Logging out...");
await LocalStorage.logout();
return null; return null;
} }
@ -31,7 +32,7 @@ class ApiService {
if (refreshed) { if (refreshed) {
return await LocalStorage.getJwtToken(); return await LocalStorage.getJwtToken();
} else { } else {
logSafe("Token refresh failed. Logging out..."); logSafe("Token refresh failed. Logging out immediately...");
await LocalStorage.logout(); await LocalStorage.logout();
return null; return null;
} }
@ -47,10 +48,16 @@ class ApiService {
final refreshed = await AuthService.refreshToken(); final refreshed = await AuthService.refreshToken();
if (refreshed) { if (refreshed) {
return await LocalStorage.getJwtToken(); return await LocalStorage.getJwtToken();
} else {
logSafe("Token refresh failed (near expiry). Logging out...");
await LocalStorage.logout();
return null;
} }
} }
} catch (e) { } catch (e) {
logSafe("Token decoding error: $e", level: LogLevel.error); logSafe("Token decoding error: $e", level: LogLevel.error);
await LocalStorage.logout();
return null;
} }
return token; return token;
@ -107,8 +114,9 @@ class ApiService {
}) async { }) async {
String? token = await _getToken(); String? token = await _getToken();
if (token == null) { if (token == null) {
logSafe("Token is null. Cannot proceed with GET request.", logSafe("Token is null. Forcing logout from GET request.",
level: LogLevel.error); level: LogLevel.error);
await LocalStorage.logout();
return null; return null;
} }
@ -141,8 +149,9 @@ class ApiService {
); );
} }
logSafe("Token refresh failed. Aborting request.", logSafe("Token refresh failed. Logging out user.",
level: LogLevel.error); level: LogLevel.error);
await LocalStorage.logout();
} }
return response; return response;
@ -246,7 +255,7 @@ class ApiService {
} }
/// Directory calling the API /// Directory calling the API
static Future<bool> deleteBucket(String id) async { static Future<bool> deleteBucket(String id) async {
final endpoint = "${ApiEndpoints.updateBucket}/$id"; final endpoint = "${ApiEndpoints.updateBucket}/$id";