Swift 4 - Alamofire - Uwierzytelnianie NTLM współpracuje z nieprawidłowych poświadczeń

głosy
1

Mam problem z uwierzytelniać credenitals NTLM, kiedy używać poprawnych poświadczeń, to działa, ale kiedy używać nieprawidłowych poświadczeń nie zawiedzie, to działa tak samo jak to będzie z ważnych mandatów. Jest to jedyny przypadek, kiedy wprowadzić prawidłowe poświadczenia pierwszy. Jest tam z dala, aby wyczyścić poświadczeń lub co robię źle tutaj? Tu jest mój kodu:

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]

        Alamofire.request(url, method: .get, headers: headers).authenticate(usingCredential: credential).responseJSON {
                (response) in

                print(response.result)

                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)

                }

            }

    }

Jedną rzeczą, jaką zauważyłem, gdybym Wprowadź poprawne creds, następnie odczekać kilka minut i wprowadzić te nieprawidłowe to działa zgodnie z oczekiwaniami.

Utwórz 13/01/2020 o 23:49
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

.failurenie jest zwracana do błędów HTTP. Trzeba spojrzeć na kod odpowiedzi w .success przypadku do odpowiedzi HTTP, który wskazuje, że uwierzytelniania powiodło.

Spójrz tutaj: Swift Alamofire: Jak uzyskać kod stanu odpowiedzi HTTP dla jak to zrobić.

Odpowiedział 13/01/2020 o 23:55
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more