enhanced refresh token handelling #11

Merged
vaibhav.surve merged 1 commits from Vaibhav_Task-#179 into main 2025-05-06 05:21:25 +00:00

View File

@ -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<bool> 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) {