Я пытаюсь использовать SessionManager Alamofire для вызова API, требующего учетные данные. Причина, по которой я использую SessionManager, потому что я не могу отключить кэш простым запросом.
Вот мой код:
func loginUser(_ username: String, password: String, completion: @escaping (_ result: Bool) -> Void)
{
let user = username
let password = password
let url = webservice
let credential = URLCredential(user: user, password: password, persistence: .none)
let headers = ["Accept": "application/json;odata=verbose", "Content-type": "application/json;odata=verbose"]
let configuration = URLSessionConfiguration.default
configuration.urlCache = nil
let mySessionManager = Alamofire.SessionManager(configuration: configuration)
mySessionManager.request(url, method: .get, headers: headers).authenticate(usingCredential: credential).responseJSON {
(response) in
switch response.result {
case .success:
if let value = response.result.value {
completion(true)
}else{
print("There is error in the server response")
completion(false)
}
case .failure (let error):
print("The NTLM request error is: ", error.localizedDescription)
completion(false)
}
}
}
Если я выполняю обычный запрос с учетные данные это работает, но проблема в том, что если я использую действительные учетные данные и сразу после ввода недействительных учетных данных пользователя, он говорит, что недействительные учетные данные действительны, поэтому я сделал несколько копаний, и было предложено использовать SessionManager, но это всегда не удается (с действительными или неверные учетные данные) Что я здесь не так делаю?