refreshToken method
Implementation
Future<bool> refreshToken(String? parentUrl) async {
_isRefreshing = true;
_completer = Completer();
String refreshToken = "";
if (refreshToken.isEmpty) {
_isRefreshing = false;
_logoutUser();
return false;
}
// TODO add your refresh token API here
final url = Uri.parse("");
final request = {'refresh_token': refreshToken};
debugPrint('Refresh Req Body : ${request.toString()}');
final response = await http.post(
url,
body: jsonEncode(request),
headers: {'Content-Type': 'application/json'},
);
debugPrint('Refresh Resp : ${response.toString()}');
debugPrint('Refresh Resp Code : ${response.statusCode}');
debugPrint('Refresh Resp Body : ${response.body.toString()}');
if (response.statusCode == 200 || response.statusCode == 201) {
final Map<String, dynamic> body = jsonDecode(response.body);
final newAccessToken = body['access_token'];
final newRefreshToken = body['refresh_token'];
// await sharedPref.saveAccessToken(newAccessToken);
// await sharedPref.saveRefreshToken(newRefreshToken);
_isRefreshing = false;
return true;
} else {
await _logoutUser();
_isRefreshing = false;
return false;
}
}