diff --git a/lib/helpers/services/auth_service.dart b/lib/helpers/services/auth_service.dart index 15ee720..a60445e 100644 --- a/lib/helpers/services/auth_service.dart +++ b/lib/helpers/services/auth_service.dart @@ -31,6 +31,10 @@ class AuthService { final jwtToken = responseData['data']['token']; final refreshToken = responseData['data']['refreshToken']; + // Log the tokens using the logger + logger.i("JWT Token: $jwtToken"); + if (refreshToken != null) logger.i("Refresh Token: $refreshToken"); + await LocalStorage.setJwtToken(jwtToken); await LocalStorage.setLoggedInUser(true); @@ -40,9 +44,6 @@ class AuthService { Get.put(PermissionController()); - logger.i("JWT Token: $jwtToken"); - if (refreshToken != null) logger.i("Refresh Token: $refreshToken"); - return null; // Success } else if (response.statusCode == 401) { return {"password": "Invalid email or password"}; @@ -59,25 +60,41 @@ class AuthService { /// Refreshes the JWT token using the refresh token. static Future refreshToken() async { + final accessToken = await LocalStorage.getJwtToken(); final refreshToken = await LocalStorage.getRefreshToken(); - if (refreshToken == null || refreshToken.isEmpty) { - logger.w("No refresh token available."); + + if (accessToken == null || + refreshToken == null || + accessToken.isEmpty || + refreshToken.isEmpty) { + logger.w("Missing token or refresh token for refresh."); return false; } + final requestBody = { + "token": accessToken, + "refreshToken": refreshToken, + }; + + logger.i("Sending refresh token request with body: $requestBody"); + try { final response = await http.post( Uri.parse("$_baseUrl/auth/refresh-token"), - headers: {'Content-Type': 'application/json'}, - body: jsonEncode({"refreshToken": refreshToken}), + headers: { + 'Content-Type': 'application/json', + }, + body: jsonEncode(requestBody), ); + logger.i( + "Refresh token API response (${response.statusCode}): ${response.body}"); + final data = jsonDecode(response.body); if (response.statusCode == 200 && data['success'] == true) { - final newAccessToken = data['data']['accessToken']; + final newAccessToken = data['data']['token']; final newRefreshToken = data['data']['refreshToken']; - // Check if the tokens are valid before saving them if (newAccessToken == null || newRefreshToken == null) { logger.w("Invalid tokens received during refresh."); return false; @@ -91,9 +108,6 @@ class AuthService { return true; } else { logger.w("Refresh failed: ${data['message']}"); - await LocalStorage.removeToken('jwt_token'); - await LocalStorage.removeToken('refresh_token'); - await LocalStorage.setLoggedInUser(false); return false; } } catch (e) {