Ошибка iOS CredStore, приводящая к зависанию Angular в ожидании ответа - PullRequest
0 голосов
/ 03 июля 2019

Мое приложение - это приложение Cordova / Ionic. Недавно у одного из API, из которого извлекается мое приложение, произошла ошибка аутентификации ... токен отозван. В Android служба, отвечающая за вызов API, возвращает ошибку API, ошибка обрабатывается, и приложение продолжается ... но в iOS ошибка аутентификации теперь генерирует ошибку iOS следующего типа, которая приводит к тому, что служба просто вращает свои колеса и никогда ничего не возвращать:

CredStore - preformQuery = Error copying matching creds Error=-25300

Я никогда не видел эту ошибку раньше. Это не стандартная ошибка API, остальная часть моего вызова службы API обрабатывает ошибки API (включая ошибки аутентификации), но эта ошибка не является ошибкой API, это ошибка iOS, которая препятствует правильному возвращению $ http response , Я знаю, что является причиной этого или как с этим бороться. Это похоже на ошибку аутентификации, которая вызывает некую ошибку учетных данных iOS, которая в свою очередь приводит к зависанию $ http (req) в ожидании ответа ....

var req = {
  method: 'POST',
  url: 'https://api.blah.com/oauth/token',
  headers: {"Content-Type":"application/JSON", Authorization: "Basic " + blahCreds},
  data: {"grant_type":"client_credentials","scope":"public"}
}
return $http(req)
.then(function(response){

Единственный способ обойти эту проблему на iOS - добавить: timeout:httpTimeout, к $http(req) - после 30 секунд отсутствия ответа API просто отключается, и управление возвращается приложению для обработки timeout (и другие данные из других API, возвращающие действительные данные).

Для дальнейшей проверки response никогда не возвращается, когда я наблюдаю за моим приложением в Safari -> Разработка, я вижу запись для url https://api.blah.com/oauth/token, просто вращающуюся и вращающуюся в ожидании некоторого ответа, но в Xcode я вижу Вышла ошибка выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...