Swift 4 - Alamofire - autenticazione NTLM funziona con credenziali non valide

voti
1

Sto avendo un problema con autenticare credenitals NTLM, quando uso credenziali valide, funziona, ma quando uso credenziali non valide non manca, funziona come lo stesso come farebbe con credenziali valide. Questo è solo il caso quando entro credenziali valide per primo. C'è via per cancellare le credenziali o che cosa sto facendo male qui? Ecco il mio codice:

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)

                }

            }

    }

Una cosa che ho notato, se entro creds validi, quindi attendere qualche minuto e inserire quelli non validi funziona come previsto.

È pubblicato 13/01/2020 alle 21:49
fonte dall'utente
In altre lingue...                            


1 risposte

voti
0

.failureNon viene restituito per errori HTTP. Hai bisogno di guardare il codice di risposta nel caso .success per la risposta HTTP che indica che autenticazione fallita.

Guardate qui: Swift Alamofire: Come ottenere il codice di stato HTTP di risposta per sapere come fare.

Risposto il 13/01/2020 a 21:55
fonte dall'utente

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