Как исправить время многократного вызова api refreshToken с помощью GetConnect

#flutter #dart #flutter-getx

Вопрос:

Я использую GetConnect для вызова API в своем приложении. Я сталкиваюсь с проблемой, когда обновление API с истекшим сроком действия токена вызывается несколько раз. Я написал код, как показано ниже, может ли кто-нибудь проверить его для меня

 *class BaseConnect extends GetConnect {
  @override
  void onInit() {
    var _storage = Get.find<DataStorage>();
    httpClient
      ..baseUrl = GlobalConfiguration().get(kBaseUrl)
      ..timeout = Duration(seconds: kTimeOut)
      ..addAuthenticator((request) async {
        if (_storage.getRefreshToken().isNotEmpty) {
          var res = await get(kApiRefreshToken,
              query: {'token': _storage.getRefreshToken()},
              decoder: (map) => BaseResponse.fromMap(map));
          TokenModel model = TokenModel.fromMap(res.body.data);
          if (model.accessToken.isNotEmpty) {
            await _storage.setToken(model);
            request.headers[kAuthorization] = "$kBearer ${model.accessToken}";
          }
        }
        return request;
      })
      ..addRequestModifier((request) {
        var token = _storage.getAccessToken();
        if (token.isNotEmpty)
          request.headers[kAuthorization] = "$kBearer $token";
        return request;
      });
  }

  Future<BaseResponse> getResponse(String url, {dynamic query}) async {
    var response = await get(url,
        query: query, decoder: (map) => BaseResponse.fromMap(map));
    if (response.isOk) {
      return response.body.toMap()['status'] == kSuccessApi
          ? response.body
          : BaseResponse.fromMap(response.body.toMap());
    } else {
 
      return BaseResponse.fromMap(jsonDecode(response.bodyString));
    }
  }

}*