URLCredentialStorage.shared.defaultCredential не имеет пароля после получения ответа 401
В своем приложении я использую:
URLCredentialStorage.shared.setDefaultCredential(......)
и он отлично работает. Но если на один из моих запросов будет получен ответ 401, все последующие запросы получат ответ 401. После изучения проблемы в течение нескольких дней я проверил учетные данные по умолчанию внутри метода делегата следующим образом:
func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
...........
let credentials = URLCredentialStorage.shared.defaultCredential(for: ..... )
debugPrint("username: \(credentials.user) and pass: \(credentials.password)")
...........
}
Приведенный выше код печатает:
"username: Необязательно ("myusername") и pass: nil"
Это происходит только после получения ответа 401 от сервера. В противном случае он печатает правильный пароль.
Это ожидаемое поведение? Есть ли способ избежать обнуления пароля после получения ответа 401?